[나만의블로그개발하기] 03 글쓰고 읽기, 리스트 보기
TRANSCRIPT
![Page 1: [나만의블로그개발하기] 03 글쓰고 읽기, 리스트 보기](https://reader034.vdocuments.net/reader034/viewer/2022051520/58ace9091a28ab40588b5c91/html5/thumbnails/1.jpg)
글 쓰고 읽기, 리스트 보기나만의 블로그 개발해보기
03
![Page 2: [나만의블로그개발하기] 03 글쓰고 읽기, 리스트 보기](https://reader034.vdocuments.net/reader034/viewer/2022051520/58ace9091a28ab40588b5c91/html5/thumbnails/2.jpg)
데이터를 보내는 방법
GET
POST
데이터를 달라고 요청한다 ex) 일반적인 웹 사이트 들어갈 때
데이터를 보낸다 ex) 게시물 올리기, 로그인 등
지난 이야기 그래서 오늘은 블로그에는 무엇이 필요할까 MySQL과 친해지길 바래 렌더러는 무엇일까? 빡코딩
![Page 3: [나만의블로그개발하기] 03 글쓰고 읽기, 리스트 보기](https://reader034.vdocuments.net/reader034/viewer/2022051520/58ace9091a28ab40588b5c91/html5/thumbnails/3.jpg)
블로그 만들기 여정의 시작지난 이야기 그래서 오늘은 블로그에는 무엇이 필요할까 MySQL과 친해지길 바래 렌더러는 무엇일까? 빡코딩
![Page 4: [나만의블로그개발하기] 03 글쓰고 읽기, 리스트 보기](https://reader034.vdocuments.net/reader034/viewer/2022051520/58ace9091a28ab40588b5c91/html5/thumbnails/4.jpg)
한번 생각해봅시다
블로그 게시글엔 무슨 정보가 필요할까요?
![Page 5: [나만의블로그개발하기] 03 글쓰고 읽기, 리스트 보기](https://reader034.vdocuments.net/reader034/viewer/2022051520/58ace9091a28ab40588b5c91/html5/thumbnails/5.jpg)
제목
업로드 시간
내용
.
.
. 또 없을까요?
![Page 6: [나만의블로그개발하기] 03 글쓰고 읽기, 리스트 보기](https://reader034.vdocuments.net/reader034/viewer/2022051520/58ace9091a28ab40588b5c91/html5/thumbnails/6.jpg)
테이블을 직접 한번 설계해 봅시다
게시글 제목 : 문자열 게시글 내용 : 문자열 게시 일자 : 날짜
.
.
.
지난 이야기 그래서 오늘은 블로그에는 무엇이 필요할까 MySQL과 친해지길 바래 렌더러는 무엇일까? 빡코딩
![Page 7: [나만의블로그개발하기] 03 글쓰고 읽기, 리스트 보기](https://reader034.vdocuments.net/reader034/viewer/2022051520/58ace9091a28ab40588b5c91/html5/thumbnails/7.jpg)
테이블을 직접 한번 만들어 봅시다
CREATE TABLE `article` (`title` TINYTEXT NOT NULL,`body` TEXT NOT NULL,`timestamp` DATETIME DEFAULT CURRENT_TIMESTAMP
)
12345
지난 이야기 그래서 오늘은 블로그에는 무엇이 필요할까 MySQL과 친해지길 바래 렌더러는 무엇일까? 빡코딩
![Page 8: [나만의블로그개발하기] 03 글쓰고 읽기, 리스트 보기](https://reader034.vdocuments.net/reader034/viewer/2022051520/58ace9091a28ab40588b5c91/html5/thumbnails/8.jpg)
테이블을 직접 한번 만들어 봅시다
CREATE TABLE `article` (`title` TINYTEXT NOT NULL,`body` TEXT NOT NULL,`timestamp` DATETIME DEFAULT CURRENT_TIMESTAMP
)
12345
article이라는 테이블을 만듭니다.CREATE TABLE `article`
지난 이야기 그래서 오늘은 블로그에는 무엇이 필요할까 MySQL과 친해지길 바래 렌더러는 무엇일까? 빡코딩
![Page 9: [나만의블로그개발하기] 03 글쓰고 읽기, 리스트 보기](https://reader034.vdocuments.net/reader034/viewer/2022051520/58ace9091a28ab40588b5c91/html5/thumbnails/9.jpg)
CREATE TABLE `article` (`title` TINYTEXT NOT NULL,`body` TEXT NOT NULL,`timestamp` DATETIME DEFAULT CURRENT_TIMESTAMP
)
`title` TINYTEXT NOT NULL,`body` TEXT NOT NULL,`timestamp` DATETIME DEFAULT CURRENT_TIMESTAMP
테이블을 직접 한번 만들어 봅시다
12345
그 테이블은 다음과 같은 Column들를 가지고 있습니다.
지난 이야기 그래서 오늘은 블로그에는 무엇이 필요할까 MySQL과 친해지길 바래 렌더러는 무엇일까? 빡코딩
![Page 10: [나만의블로그개발하기] 03 글쓰고 읽기, 리스트 보기](https://reader034.vdocuments.net/reader034/viewer/2022051520/58ace9091a28ab40588b5c91/html5/thumbnails/10.jpg)
테이블을 직접 한번 만들어 봅시다
CREATE TABLE `article` (`title` TINYTEXT NOT NULL,`body` TEXT NOT NULL,`timestamp` DATETIME DEFAULT CURRENT_TIMESTAMP
)
12345
Column의 이름이고`title`TEXT
DEFAULT CURRENT_TIMESTAMPColumn의 데이터 타입이며
Row가 생성될 때에 가지는 기본 값입니다.
지난 이야기 그래서 오늘은 블로그에는 무엇이 필요할까 MySQL과 친해지길 바래 렌더러는 무엇일까? 빡코딩
![Page 11: [나만의블로그개발하기] 03 글쓰고 읽기, 리스트 보기](https://reader034.vdocuments.net/reader034/viewer/2022051520/58ace9091a28ab40588b5c91/html5/thumbnails/11.jpg)
MySQL 콘솔로 직접 넣어봅시다전 당신이 직접 코드를 짜보길 원합니다
지난 이야기 그래서 오늘은 블로그에는 무엇이 필요할까 MySQL과 친해지길 바래 렌더러는 무엇일까? 빡코딩
![Page 12: [나만의블로그개발하기] 03 글쓰고 읽기, 리스트 보기](https://reader034.vdocuments.net/reader034/viewer/2022051520/58ace9091a28ab40588b5c91/html5/thumbnails/12.jpg)
일단 데이터베이스를 만들어봅니다.
CREATE DATABASE `blog`;use blog
12
지난 이야기 그래서 오늘은 블로그에는 무엇이 필요할까 MySQL과 친해지길 바래 렌더러는 무엇일까? 빡코딩
![Page 13: [나만의블로그개발하기] 03 글쓰고 읽기, 리스트 보기](https://reader034.vdocuments.net/reader034/viewer/2022051520/58ace9091a28ab40588b5c91/html5/thumbnails/13.jpg)
만들어진 테이블에 직접 넣어봅시다
INSERT INTO `article`(`title`, `body`) VALUES(‘첫번째 게시물입니다’, ‘첫번째 내용입니다’)
12
지난 이야기 그래서 오늘은 블로그에는 무엇이 필요할까 MySQL과 친해지길 바래 렌더러는 무엇일까? 빡코딩
![Page 14: [나만의블로그개발하기] 03 글쓰고 읽기, 리스트 보기](https://reader034.vdocuments.net/reader034/viewer/2022051520/58ace9091a28ab40588b5c91/html5/thumbnails/14.jpg)
만들어진 테이블에 직접 넣어봅시다
INSERT INTO `article`(`title`, `body`) VALUES(‘첫번째 게시물입니다’, ‘첫번째 내용입니다’)
12
INSERT INTO `article` article이란 테이블에 새로운 값을 입력하겠습니다.
지난 이야기 그래서 오늘은 블로그에는 무엇이 필요할까 MySQL과 친해지길 바래 렌더러는 무엇일까? 빡코딩
![Page 15: [나만의블로그개발하기] 03 글쓰고 읽기, 리스트 보기](https://reader034.vdocuments.net/reader034/viewer/2022051520/58ace9091a28ab40588b5c91/html5/thumbnails/15.jpg)
만들어진 테이블에 직접 넣어봅시다
INSERT INTO `article`(`title`, `body`) VALUES(‘첫번째 게시물입니다’, ‘첫번째 내용입니다’)
12
입력할 Column은 다음과 같습니다.
(`title`, `body`)
지난 이야기 그래서 오늘은 블로그에는 무엇이 필요할까 MySQL과 친해지길 바래 렌더러는 무엇일까? 빡코딩
![Page 16: [나만의블로그개발하기] 03 글쓰고 읽기, 리스트 보기](https://reader034.vdocuments.net/reader034/viewer/2022051520/58ace9091a28ab40588b5c91/html5/thumbnails/16.jpg)
만들어진 테이블에 직접 넣어봅시다
INSERT INTO `article`(`title`, `body`) VALUES(‘첫번째 게시물입니다’, ‘첫번째 내용입니다’)
12 그 Column에 들어갈 값은
다음과 같습니다.VALUES(‘첫번째 게시물입니다’, ‘첫번째 내용입니다’)
지난 이야기 그래서 오늘은 블로그에는 무엇이 필요할까 MySQL과 친해지길 바래 렌더러는 무엇일까? 빡코딩
![Page 17: [나만의블로그개발하기] 03 글쓰고 읽기, 리스트 보기](https://reader034.vdocuments.net/reader034/viewer/2022051520/58ace9091a28ab40588b5c91/html5/thumbnails/17.jpg)
넣은 값을 다시 한번 불러와봅시다.다시 복습해보기
지난 이야기 그래서 오늘은 블로그에는 무엇이 필요할까 MySQL과 친해지길 바래 렌더러는 무엇일까? 빡코딩
![Page 18: [나만의블로그개발하기] 03 글쓰고 읽기, 리스트 보기](https://reader034.vdocuments.net/reader034/viewer/2022051520/58ace9091a28ab40588b5c91/html5/thumbnails/18.jpg)
이번엔 파이선을 통해서 넣어봅시다난데? 난 쉬운 파이선인데?
지난 이야기 그래서 오늘은 블로그에는 무엇이 필요할까 MySQL과 친해지길 바래 렌더러는 무엇일까? 빡코딩
![Page 19: [나만의블로그개발하기] 03 글쓰고 읽기, 리스트 보기](https://reader034.vdocuments.net/reader034/viewer/2022051520/58ace9091a28ab40588b5c91/html5/thumbnails/19.jpg)
MySQL을 쉽게 쓸 수 있도록 도와주는 MySQLdb 라이브러리 다운로드
$ pip install MySQL-python
지난 이야기 그래서 오늘은 블로그에는 무엇이 필요할까 MySQL과 친해지길 바래 렌더러는 무엇일까? 빡코딩
![Page 20: [나만의블로그개발하기] 03 글쓰고 읽기, 리스트 보기](https://reader034.vdocuments.net/reader034/viewer/2022051520/58ace9091a28ab40588b5c91/html5/thumbnails/20.jpg)
123
45678
import MySQLdb
conn = MySQLdb.connect(host='localhost', user='user', passwd='pwd', db='dbname', charset='utf8')c = conn.cursor()
c.execute('''INSERT INTO `article`(`title`, `body`) VALUES(\'두번째 게시물입니다\', \'두번째 내용입니다\')''')conn.commit()
지난 이야기 그래서 오늘은 블로그에는 무엇이 필요할까 MySQL과 친해지길 바래 렌더러는 무엇일까? 빡코딩
![Page 21: [나만의블로그개발하기] 03 글쓰고 읽기, 리스트 보기](https://reader034.vdocuments.net/reader034/viewer/2022051520/58ace9091a28ab40588b5c91/html5/thumbnails/21.jpg)
123
45678
import MySQLdb
conn = MySQLdb.connect(host='localhost', user='user', passwd='pwd', db='dbname', charset='utf8')c = conn.cursor()
c.execute('''INSERT INTO `article`(`title`, `body`) VALUES(\'두번째 게시물입니다\', \'두번째 내용입니다\')''')conn.commit()
conn = MySQLdb.connect(host='localhost', user='user', passwd='pwd', db='dbname', charset='utf8')
MySQL와 연결합니다.
지난 이야기 그래서 오늘은 블로그에는 무엇이 필요할까 MySQL과 친해지길 바래 렌더러는 무엇일까? 빡코딩
![Page 22: [나만의블로그개발하기] 03 글쓰고 읽기, 리스트 보기](https://reader034.vdocuments.net/reader034/viewer/2022051520/58ace9091a28ab40588b5c91/html5/thumbnails/22.jpg)
123
45678
import MySQLdb
conn = MySQLdb.connect(host='localhost', user='user', passwd='pwd', db='dbname', charset='utf8')c = conn.cursor()
c.execute('''INSERT INTO `article`(`title`, `body`) VALUES(\'두번째 게시물입니다\', \'두번째 내용입니다\')''')conn.commit()
커서를 만듭니다. 커서란, SQL 구문 등을 실행할 수 있는 객체입니다.
c = conn.cursor()
지난 이야기 그래서 오늘은 블로그에는 무엇이 필요할까 MySQL과 친해지길 바래 렌더러는 무엇일까? 빡코딩
![Page 23: [나만의블로그개발하기] 03 글쓰고 읽기, 리스트 보기](https://reader034.vdocuments.net/reader034/viewer/2022051520/58ace9091a28ab40588b5c91/html5/thumbnails/23.jpg)
123
45678
import MySQLdb
conn = MySQLdb.connect(host='localhost', user='user', passwd='pwd', db='dbname', charset='utf8')c = conn.cursor()
c.execute('''INSERT INTO `article`(`title`, `body`) VALUES(\'두번째 게시물입니다\', \'두번째 내용입니다\')''')conn.commit()
쿼리문을 실행합니다.
c.execute('''INSERT INTO `article`(`title`, `body`) VALUES(\'두번째 게시물입니다\', \'두번째 내용입니다\')''')
지난 이야기 그래서 오늘은 블로그에는 무엇이 필요할까 MySQL과 친해지길 바래 렌더러는 무엇일까? 빡코딩
![Page 24: [나만의블로그개발하기] 03 글쓰고 읽기, 리스트 보기](https://reader034.vdocuments.net/reader034/viewer/2022051520/58ace9091a28ab40588b5c91/html5/thumbnails/24.jpg)
123
45678
import MySQLdb
conn = MySQLdb.connect(host='localhost', user='user', passwd='pwd', db='dbname', charset='utf8')c = conn.cursor()
c.execute('''INSERT INTO `article`(`title`, `body`) VALUES(\'두번째 게시물입니다\', \'두번째 내용입니다\')''')conn.commit()conn.commit() 변경된 값을 데이터베이스에 적용합니다.
지난 이야기 그래서 오늘은 블로그에는 무엇이 필요할까 MySQL과 친해지길 바래 렌더러는 무엇일까? 빡코딩
![Page 25: [나만의블로그개발하기] 03 글쓰고 읽기, 리스트 보기](https://reader034.vdocuments.net/reader034/viewer/2022051520/58ace9091a28ab40588b5c91/html5/thumbnails/25.jpg)
12345
c.execute('SELECT * FROM `article`’)list = c.fetchall()
for i in list: print “%s : %s”%(i[0], i[1])
지난 이야기 그래서 오늘은 블로그에는 무엇이 필요할까 MySQL과 친해지길 바래 렌더러는 무엇일까? 빡코딩
![Page 26: [나만의블로그개발하기] 03 글쓰고 읽기, 리스트 보기](https://reader034.vdocuments.net/reader034/viewer/2022051520/58ace9091a28ab40588b5c91/html5/thumbnails/26.jpg)
12345
c.execute('SELECT * FROM `article`’)list = c.fetchall()
for i in list: print “%s : %s”%(i[0], i[1])
c.execute('SELECT * FROM `article`’) 쿼리문을 실행합니다.
지난 이야기 그래서 오늘은 블로그에는 무엇이 필요할까 MySQL과 친해지길 바래 렌더러는 무엇일까? 빡코딩
![Page 27: [나만의블로그개발하기] 03 글쓰고 읽기, 리스트 보기](https://reader034.vdocuments.net/reader034/viewer/2022051520/58ace9091a28ab40588b5c91/html5/thumbnails/27.jpg)
12345
c.execute('SELECT * FROM `article`’)list = c.fetchall()
for i in list: print “%s : %s”%(i[0], i[1])
위 실행 결과의 전체를 리스트 형태로 가지고 옵니다.list = c.fetchall()
지난 이야기 그래서 오늘은 블로그에는 무엇이 필요할까 MySQL과 친해지길 바래 렌더러는 무엇일까? 빡코딩
![Page 28: [나만의블로그개발하기] 03 글쓰고 읽기, 리스트 보기](https://reader034.vdocuments.net/reader034/viewer/2022051520/58ace9091a28ab40588b5c91/html5/thumbnails/28.jpg)
12345
c.execute('SELECT * FROM `article`’)list = c.fetchall()
for i in list: print “%s : %s”%(i[0], i[1])
하나의 요소는 하나의 튜플입니다.for i in list: print “%s : %s”%(i[0], i[1])
지난 이야기 그래서 오늘은 블로그에는 무엇이 필요할까 MySQL과 친해지길 바래 렌더러는 무엇일까? 빡코딩
![Page 29: [나만의블로그개발하기] 03 글쓰고 읽기, 리스트 보기](https://reader034.vdocuments.net/reader034/viewer/2022051520/58ace9091a28ab40588b5c91/html5/thumbnails/29.jpg)
(“안녕하세요”, “튜플입니다”)
수정할 수 없는 리스트입니다쌤, 튜플이 무엇이에요?
지난 이야기 그래서 오늘은 블로그에는 무엇이 필요할까 MySQL과 친해지길 바래 렌더러는 무엇일까? 빡코딩
![Page 30: [나만의블로그개발하기] 03 글쓰고 읽기, 리스트 보기](https://reader034.vdocuments.net/reader034/viewer/2022051520/58ace9091a28ab40588b5c91/html5/thumbnails/30.jpg)
프론트 단에서 어떻게 서버의 데이터를 보여줄까?
실은 쥐도 새도 모르게 배웠습니다(…)
![Page 31: [나만의블로그개발하기] 03 글쓰고 읽기, 리스트 보기](https://reader034.vdocuments.net/reader034/viewer/2022051520/58ace9091a28ab40588b5c91/html5/thumbnails/31.jpg)
123456789101112
from flask import Flaskfrom flask import render_templatefrom flask import requestimport sysapp = Flask(__name__)
@app.route(“/”)def hello(): return render_template(“index.html”)
if __name__ == “__main__”: app.run()
return render_template(“index.html”)
![Page 32: [나만의블로그개발하기] 03 글쓰고 읽기, 리스트 보기](https://reader034.vdocuments.net/reader034/viewer/2022051520/58ace9091a28ab40588b5c91/html5/thumbnails/32.jpg)
지난 이야기 그래서 오늘은 블로그에는 무엇이 필요할까 MySQL과 친해지길 바래 렌더러는 무엇일까? 빡코딩
렌더러 (Render-er)Flask에서 파라미터를 받아 프론트앤드에서 띄워줌
![Page 33: [나만의블로그개발하기] 03 글쓰고 읽기, 리스트 보기](https://reader034.vdocuments.net/reader034/viewer/2022051520/58ace9091a28ab40588b5c91/html5/thumbnails/33.jpg)
1
URL이랑 를 받아라
2
ㅇㅎ ㅇㅋㅇㅋ ㄱㄷ
3
받아서 띄운다~
요 함수에는 요걸 보여줘야함HTML이랑 파라미터 보낸다
저번시간 +a
빈칸들 채우고!
지난 이야기 그래서 오늘은 블로그에는 무엇이 필요할까 MySQL과 친해지길 바래 렌더러는 무엇일까? 빡코딩
![Page 34: [나만의블로그개발하기] 03 글쓰고 읽기, 리스트 보기](https://reader034.vdocuments.net/reader034/viewer/2022051520/58ace9091a28ab40588b5c91/html5/thumbnails/34.jpg)
지난 이야기 그래서 오늘은 블로그에는 무엇이 필요할까 MySQL과 친해지길 바래 렌더러는 무엇일까? 빡코딩
Q. 다음 빈칸에 맞는 파라미터를 찾아 넣으시오.
<html><head> <meta charset=“UTF-8”></head><body> <p> </p> <!—— name을 받아 넣을것임 ——></body></html>
(가)
![Page 35: [나만의블로그개발하기] 03 글쓰고 읽기, 리스트 보기](https://reader034.vdocuments.net/reader034/viewer/2022051520/58ace9091a28ab40588b5c91/html5/thumbnails/35.jpg)
지난 이야기 그래서 오늘은 블로그에는 무엇이 필요할까 MySQL과 친해지길 바래 렌더러는 무엇일까? 빡코딩
Q. 다음 빈칸에 맞는 파라미터를 찾아 넣으시오.
<html><head> <meta charset=“UTF-8”></head><body> <p> </p> <!—— name을 받아 넣을것임 ——></body></html>
{{ name }}
![Page 36: [나만의블로그개발하기] 03 글쓰고 읽기, 리스트 보기](https://reader034.vdocuments.net/reader034/viewer/2022051520/58ace9091a28ab40588b5c91/html5/thumbnails/36.jpg)
지난 이야기 그래서 오늘은 블로그에는 무엇이 필요할까 MySQL과 친해지길 바래 렌더러는 무엇일까? 빡코딩
HTML에 구멍을 뚫고 Flask로 구멍을 메꿔준다
물론 구멍 안에는 파이썬 코드들을 사용할 수 있다
![Page 37: [나만의블로그개발하기] 03 글쓰고 읽기, 리스트 보기](https://reader034.vdocuments.net/reader034/viewer/2022051520/58ace9091a28ab40588b5c91/html5/thumbnails/37.jpg)
123456789
{{ parameter }}
{% if name==“배주웅” %}{% elif name=“김효준” %}{% else %}{% endif} %}
{% for … in … %}{% endfor %}
지난 이야기 그래서 오늘은 블로그에는 무엇이 필요할까 MySQL과 친해지길 바래 렌더러는 무엇일까? 빡코딩
기본적으로 파라미터를 출력할 때
파이썬의 if 문도 사용 가능하고,
파이썬의 for문 역시 사용 가능합니다.
![Page 38: [나만의블로그개발하기] 03 글쓰고 읽기, 리스트 보기](https://reader034.vdocuments.net/reader034/viewer/2022051520/58ace9091a28ab40588b5c91/html5/thumbnails/38.jpg)
지난 이야기 그래서 오늘은 블로그에는 무엇이 필요할까 MySQL과 친해지길 바래 렌더러는 무엇일까? 빡코딩
12345
<form method=“POST” action=“/post_check”> <input type=“text” name=“title” placeholder=“제목”> <textarea name=“content” placeholder=“내용”></textarea> <input type=“submit” value=“올리기”></form>
12
<h1>{{title}}</h1><p>{{content}}</p>
![Page 39: [나만의블로그개발하기] 03 글쓰고 읽기, 리스트 보기](https://reader034.vdocuments.net/reader034/viewer/2022051520/58ace9091a28ab40588b5c91/html5/thumbnails/39.jpg)
1234
@app.route(“/params_check”)def params_check(): return render_template(“params_check.html”, name=request.args[‘name’])
지난 이야기 그래서 오늘은 블로그에는 무엇이 필요할까 MySQL과 친해지길 바래 렌더러는 무엇일까? 빡코딩
![Page 40: [나만의블로그개발하기] 03 글쓰고 읽기, 리스트 보기](https://reader034.vdocuments.net/reader034/viewer/2022051520/58ace9091a28ab40588b5c91/html5/thumbnails/40.jpg)
시애수애수자주 볼 정도로 사랑하고, 한계까지 익혀라
修涯數愛視
![Page 41: [나만의블로그개발하기] 03 글쓰고 읽기, 리스트 보기](https://reader034.vdocuments.net/reader034/viewer/2022051520/58ace9091a28ab40588b5c91/html5/thumbnails/41.jpg)
감사합니다!글 쓰고 읽기. 쓴 글의 리스트 보기
수업때 만나요 :)