본문 바로가기

분류 전체보기470

wsl에서 일반사용자로 mysql 실행시 Access Denied가 계속 뜬다? 데스크톱, 노트북 등 현재 사용중인 PC가 다섯 대 정도 있어서 여러 운영체제 조건하에서 코딩이나 테스트를 해 볼 수 있다. 재미있는 것은, 특정 PC의 wsl 환경에서만 데이터베이스 접속이 안되었는데, (정확히는 일반사용자로 mysql -u root -p 명령어로도 Access Denied가 뜨고, sudo mysql은 즉시 실행되는 문제가 있었다.) "설정파일을 만져보라", "재설치해보라" 등등 여러 가지 솔루션이 있었지만 차례대로 모두 실행해봐도 "Access Denied"가 해결되지 않다가 아래 링크를 통해 일반사용자 계정을 생성하고 previlege 설정을 주었더니 말끔히 해결되었다. 아직도 신기한 것은, 왜 다른 모든 컴퓨터에서는 mysql이 잘 돌고 있는데 주력으로 쓰고 있는 윈도우11 노트.. 2023. 10. 10.
rx에서 유튜브 allowFullScreen 활성화하는 방법 아래 방법은 전체화면 아이콘이 활성화되지 않는다. (잘못된 방법) import reflex as rx class State(rx.State): pass def index() -> rx.Component: return rx.box( element="iframe", src="https://www.youtube.com/embed/9bZkp7q19f0", allowFullScreen=True) # rx.Component: return rx.box( element="iframe", src="https://www.youtube.com/embed/9bZkp7q19f0", custom_attrs=dict(allowFullScreen=True)) # 2023. 10. 9.
[reflex팁] rx.input을 효과적으로 다루는 방법 reflex는 pynecone 시절부터 지금까지 (react나 js를 다루지 않고) input을 편하게 사용할 수 있는 실험적인 기능을 제공해 왔다. 그 과정에서 불필요한 몇 가지 코드가 개선되었는데, 2023년 10월 현재는 (공식문서에는 아직 올라오지 않았지만) rx.form과 rx.set_value를 사용하는 방법이 가장 효과적인 방법으로 보인다. 개인적으로 reflex에서 set_value를 제공해 주기 전까지는 뭔가 미묘하게 걸리적거리는 문제들이 있어 고민을 많이 했는데 이제 rx.input이나 rx.form은 어느 정도 리플렉스의 철학대로 최적화가 되었다고 생각한다. 이번엔 reflex의 rx.input 컴포넌트 변천사(?)를 간단히 알아보는 포스팅을 작성해 두려고 한다. (엄밀히는 시간적인 .. 2023. 10. 5.
투두리스트에서 완료한 업무를 제거해보자. # Delete[1/2] reflex.dev가 업데이트됨에 따라,더 간편하고 쉬운 방법으로 구축할 수 있게 되었습니다.최신버전의 튜토리얼은 아래 위키독스 링크를 방문해 주시기 바랍니다.https://wikidocs.net/book/16592 [파이썬] html이 뭔지도 모르지만 홈페이지는 만들어보고 싶어!Reflex(구 Pynecone)은 파이썬으로만 웹 애플리케이션을 개발할 수 있는 오픈소스 풀스택 웹 프레임워크입니다. 이 프레임워크는 파이썬 개발자가 웹개발에 대한 경험이 전혀…wikidocs.net 지난 포스팅에서 투두리스트 앱의 CRUD 중 Create와 Read를 구현해보았다.리플렉스 컴포넌트 사용법이 다소 생소할 수는 있지만,실제로 로직 자체는 굉장히 간단한 파이썬 문법만 사용했다.append를 통해 할 일을 추가할 수.. 2023. 10. 3.
투두리스트에 할 일을 추가해보자. #Create reflex.dev가 업데이트됨에 따라,더 간편하고 쉬운 방법으로 구축할 수 있게 되었습니다.최신버전의 튜토리얼은 아래 위키독스 링크를 방문해 주시기 바랍니다.https://wikidocs.net/book/16592 [파이썬] html이 뭔지도 모르지만 홈페이지는 만들어보고 싶어!Reflex(구 Pynecone)은 파이썬으로만 웹 애플리케이션을 개발할 수 있는 오픈소스 풀스택 웹 프레임워크입니다. 이 프레임워크는 파이썬 개발자가 웹개발에 대한 경험이 전혀…wikidocs.net공식문서의 투두리스트 앱은 로직의 간단함에 비해 다소 구현이 복잡하게 되어 있다.이 포스팅 시리즈에서는 최소의 코드로 투두리스트를 만들어보면서리플렉스에서 로직을 구현하는 방법에 익숙해지도록 하는 것을 1차목표로 한다.(이 포스팅을 .. 2023. 10. 3.
파이썬의 리스트도 표현할 수 있나? # 투두리스트 앱 만들기 앞선 포스팅에서는 간단히 rx.heading이나 rx.text를 이용해 화면에 글자를 출력해보았으며 State라는 클래스와 클래스 변수인 Var를 이용해 동적인 웹앱, Counter를 구현해보았다. 그럼 이런 생각도 해볼 수 있을텐데? 단순한 텍스트 목록은 rx.text를 나열하면 될텐데, ["a", "b", "c"] 같은 리스트도 표현할 수 있을까? (직접 공식문서를 찾아 읽어보신 분이라면, 어렵지 않게 구현하실 것) 이 때는 우리가 사용할 또 다른 레이아웃 컴포넌트, 바로 rx.foreach가 필요하게 되는 시점이다. (굳이 비유하면 파이썬의 for문과 map 함수를 합친 느낌이다.) 참고로 rx.foreach는 단순한 파이썬의 for문과는 살짝 다르다. 무엇이 다른고 하니, rx.foreach(리스.. 2023. 10. 3.
간단한 동적 웹앱 만들어보기 : Counter 이번 포스팅에서는 아래와 같은 페이지를 만들어 보고, State의 사용법에 대해 간단히 이해해보고자 한다. 아래와 같은 코드로 index 함수를 만들었다. import reflex as rx def index(): return rx.vstack( # 행 방향으로 나열하는 레이아웃 컴포넌트 rx.heading("Counter"), # 제목 rx.hstack( # 열 방향으로 나열하는 레이아웃 컴포넌트 rx.button("-", color_scheme="red"), rx.heading("0"), rx.button("+", color_scheme="green") ) ) app = rx.App() app.add_page(index) app.compile() 참고로 위에서 사용한 vstack, hstack은 각각.. 2023. 10. 3.
reflex 웹페이지는 기본적으로 클래스 하나, 함수 하나로 구성된다. reflex는 프론트엔드와 백엔드의 구분이 다소 모호(?)한 pure-python fullstack webframework이다. reflex로 만드는 웹앱은 기본적으로 State라는 클래스 하나, 그리고 index라는 함수 하나로 구성된다. 이를 이해하기 위해서는 가장 간단한 앱 하나를 만들어보는 것이 좋다. 우선 State 없이 간단한 페이지함수인 index를 만들어보자. import reflex as rx def index(): return rx.heading("Hello world!") app = rx.App(state=State) app.add_page(index) app.compile() python 코드로 구성된 간단한 소스이지만, 이는 리플렉스를 구성하고 있는 node.js, React, N.. 2023. 10. 3.
[컴포넌트 소개] flex VS grid VS hstack #layout 지난 포스팅에서 가장 기본적인 wrapping component인 rx.box와 rx.fragment를 소개했습니다. 하지만, 기본적인 스타일(예를 들면 가운데정렬이나 컴포넌트 간격 조절 등?)만 적용하려고 해도 코드라인이 길어집니다. reflex에서는 이런 작업의 편의를 위해 rx.flex, rx.container, rx.center, rx.stack, rx.vstack, rx.hstack, rx.grid 등 다양한 컴포넌트를 다양하게 제공하고 있습니다. rx.center rx.center는 rx.box의 자식컴포넌트를 중앙으로 정렬해주고 flex-box가 적용되며, 아래의 CSS가 기본적으로 적용되어 있습니다. { display: -webkit-box; display: -webkit-flex; dis.. 2023. 9. 24.