Jinja2 템플릿을 이용하면 html을 나누어서 페이지를 표시할 수 있습니다. 이전 글에서 부트스트랩으로 Navbar를 만들었습니다. Navbar를 페이지 마다 붙여야 하는 번거러움이 있었죠. 다른 웹언어(PHP, JSP 등)를 경험 해본 사람들은 include를 사용해서 하면 되겠다라고 생각할 겁니다. Jinja에서도 include를 사용할 수 있는데 extends로 템플릿 상속을 해서 사용 할겁니다. extends를 사용하면 사이트의 공통부분을 포함하는 레이아웃을 만들 수 있습니다. Jinja 문법이 들어 가기 때문에 복잡해 보일 수 있지만 간단한 예제로 틀을 만든다 생각하고 그 규칙만 알면 충분히 사용할 수 있습니다. 먼저 layout.html 파일을 만들고 이전 글에서 만들었던 main.html..
DB에 데이터 저장하고 불러오기를 배웠으니 이제 우리 Flask 프로젝트에서 브라우저에서 사용자가 입력한 데이터를 받아 DB에 저장을 해보죠. 먼저 이전 글에서 db 사용 하는 소스들을 함수로 만들어서 필요한 함수를 불러서 사용 하도록 해봅니다. 저는 dbdb.py 라는 파일을 생성 했습니다. 그리고 지난 글에서 사용 했던 소스를 조금 변경 해서 각각 쪼개어 함수로 만듭니다. import sqlite3 def dbcon(): return sqlite3.connect('mydb.db') db 파일 접속 함수 입니다. 다른 DB를 옮겨도 사용할 수 있게 테이블을 생성하는 함수도 따로 생성 해놓습니다. 테이블이 이미 있다면 새로 생성되지 않고 except 가 됩니다. def create_table(): try..
파일로 처리했을 때 데이터가 많아지면 데이터들을 관리하기가 힘들어집니다. 우리는 그렇게 사용 해봤습니다. 이 전 글 참조 이런저런 조건으로 검색을 했을 때에 대한 소스들도 일일이 다 작성을 해야 겠죠. 이런 문제를 해결하기 위해 DB(DataBase)를 사용합니다. 데이터 베이스에 대한 자세한 설명은 위키백과 사전 링크로 대신합니다. 데이터 베이스 데이터베이스 - 위키백과, 우리 모두의 백과사전 위키백과, 우리 모두의 백과사전. SQL 데이터베이스 쿼리의 예. 데이터베이스(영어: database, DB)는 여러 사람이 공유하여 사용할 목적으로 체계화해 통합, 관리하는 데이터의 집합이다.[1] 작성된 �� ko.wikipedia.org 여러 데이터 베이스 시스템 중에서 일반적으로 많이 쓰이는 mysql이나..
우리는 return hello world로 화면에 나타내는 것을 render_template에서 templates 폴더 안의 html에 파일을 나타 낼 수 있었습니다. 그리고 return hello {}.format(변수) 로 hello 변수가 나타나게 했습니다. render_template 에서 데이터를 전달해서 html 내에서 전달된 데이터를 사용하는 방법에 대해 알아봅니다. return render_template("view.html", data='전달데이터') render_template 에 인수를 html 파일과 data=data 를 넘깁니다. data=data 는 키와 값으로 전달이 되면 html에서는 앞의 data 키 이름을 사용하면 '전달 데이터'를 나타 낼 수 있습니다. Jinja2 에서..
[웹 앱프로그래밍] 파이썬 플라스크(Python Flask) Request get parameter(HTTP method GET, POST) [웹 앱프로그래밍] 파이썬 플라스크(Python Flask) Request get parameter(HTTP method GET, POST) Request를 배웠으니 이제 html 에서 사용자가 입력한 데이터를 전송 해서 Flask로 받아서 처리 해야 됩니다. GET 이냐 POST냐 구분 까지 했고 html 에서 전달된 데이터를 Flask 에서 어떻게 처리 하는지 알� wings2pc.tistory.com 위 글의 소스를 이용 해서 브라우저에서 GET 과 POST 로 전달되는 데이터를 받아 파이썬에서 다뤘던 파일 입출력을 이용해서 파일에 쓰기와 읽기를 해봅니다. 저..
git 으로 소스 관리하고 github 에 소스를 올려 봤습니다. 이제 github에 있는 소스를 로컬(내PC)에 다운 받아서 Flask 개발환경을 맞추고 실행까지 시켜 봅시다. 두 가지 방법으로 진행합니다. 첫 번째는 CMD에서 github에 있는 소스 다운 두 번째는 vscode에서 진행. 먼저 로컬PC에는 파이썬 개발 환경이 구축이 되어 있는 상태에서 소스를 다운 받을 위치에서 CMD(명령창)을 엽니다. 필자는 python\web 이라는 폴더에 다운을 받을 예정입니다. 소스를 다운 받을 github의 링크가 필요합니다. 잘 올라 가있네요. 저기서 Clone or download 초록색 버튼을 클릭해봅니다. 그러면 아래 링크가 나오는데 옆에 클립보드 버튼을 클릭을 하면 주소가 복사가 됩니다. 다시 C..
templates 에 있는 HTML 에서 이미지를 띄워 봅니다. URL 주소가 있는 이미지는 html 태그에서 img src="http://이미지주소" 이런식으로 하면 되지만 Flask에서 우리 프로젝트 내부에 있는 이미지를 이용 하기 위해서는 이미지 저장 위치는 static 폴더(디렉토리) 안에 있어야 합니다. 필자는 프로젝트 폴더(test)안에 static\img 위치에 dora.png 파일이름의 이미지를 준비 했습니다. templates 폴더 안에 myimage.html 파일을 하나 생성 해서 아래와 같이 소스를 작성 합니다. 도라에몽 그리고 app.py 파일에는 저 html 을 부르는 route 하나를 만듭니다. @app.route('/dora') def myimage(): return rende..
이전 글에서 리다이렉션에 대해서 배웠는데요. 페이지 요청시 오류가 나면 예를 들어 404 not found(페이지를 찾을 수 없음) 같은 오류들을 우회 시키는 방법으로 redirect 로 이동을 시킬 수도 있겠죠. Flask는 redirect 대신 error 를 처리 할수 있는 error 핸들링이 있습니다. @app.errorhandler(HTTP상태코드) 를 사용 하면 됩니다. 사용법은 다음과 같습니다. 404 not found 를 예로 처리를 한다면 @app.errorhandler(404) def page_not_found(error): return "페이지가 없습니다. URL를 확인 하세요", 404 app.route 대신 errorhandler를 사용 하는 것을 볼수 있고 함수에 error 메세지..
Flask에서 페이지 이동에 대해 알아 봅니다. Flask 에서 페이지 이동에는 제목과 같이 redirect, url_for 등 이 있습니다. 자바스크립트에서 페이지 이동시킬때 location.href='이동할 페이지' 같다라고 볼 수 있습니다. 보통 리다이렉션이라고 부릅니다. Flask 와 javascript 다른 점은 코드도 다르지만 클라이언트에서 리다이렉션이 되느냐 서버에서 리다이렉션이 되느냐의 차이로 볼 수 있습니다. 먼저 자바스크립트 location.href 로 리다이렉션을 시켜 봅시다. templates 폴더 안에 naver.html 이라는 파일을 생성 하고 아래 코드를 입력 합니다. app.py 파일에 app.route 를 하나 추가 합니다. @app.route('/naver') def na..
이전 글에서 우리는 HTTP request 와 method 에 대해서 알아 봤습니다. app.route에서 URL을 전달 받고 method를 받아 처리 했습니다. URL에 대해 조금 더 알아 보도록 하겠습니다. route 에서 URL을 전달 받을 때 /test 와 /test/ 는 다릅니다. 아래 예제를 보시죠. @app.route('/test') def test1(): return 'test1' @app.route('/test/') def test2(): return 'test2' 위와 같이 만들고 웹브라우저에서 요청을 이렇게 다르다는 것을 알 수 있습니다. URL의 끝에 붙이는 / 를 트레일링 슬래시(Trailing Slash)라고 합니다. 리눅스를 배웠다면 끝에 / 가 붙는 것은 디렉토리이고 / 가 ..
- Total
- Today
- Yesterday
- mysql
- 부트스트랩
- DB
- docker
- pythonanywhere
- flask
- HTML
- Hello World
- 도커
- 플라스크
- WEB
- 자바
- 웹앱프로그래밍
- 리눅스
- 파이썬
- GCP
- 웹앱
- nginx
- Java
- 클라우드
- Visual Studio
- Cloud
- GIT
- 자바스크립트
- 웹앱 프로그래밍
- oracle
- 오라클
- github
- python
- javascript
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |