[나만의블로그개발하기] 03 글쓰고 읽기, 리스트 보기

Preview:

Citation preview

글 쓰고 읽기, 리스트 보기나만의 블로그 개발해보기

03

데이터를 보내는 방법

GET

POST

데이터를 달라고 요청한다 ex) 일반적인 웹 사이트 들어갈 때

데이터를 보낸다 ex) 게시물 올리기, 로그인 등

지난 이야기 그래서 오늘은 블로그에는 무엇이 필요할까 MySQL과 친해지길 바래 렌더러는 무엇일까? 빡코딩

블로그 만들기 여정의 시작지난 이야기 그래서 오늘은 블로그에는 무엇이 필요할까 MySQL과 친해지길 바래 렌더러는 무엇일까? 빡코딩

한번 생각해봅시다

블로그 게시글엔 무슨 정보가 필요할까요?

제목

업로드 시간

내용

.

.

. 또 없을까요?

테이블을 직접 한번 설계해 봅시다

게시글 제목 : 문자열 게시글 내용 : 문자열 게시 일자 : 날짜

.

.

.

지난 이야기 그래서 오늘은 블로그에는 무엇이 필요할까 MySQL과 친해지길 바래 렌더러는 무엇일까? 빡코딩

테이블을 직접 한번 만들어 봅시다

CREATE TABLE `article` (`title` TINYTEXT NOT NULL,`body` TEXT NOT NULL,`timestamp` DATETIME DEFAULT CURRENT_TIMESTAMP

)

12345

지난 이야기 그래서 오늘은 블로그에는 무엇이 필요할까 MySQL과 친해지길 바래 렌더러는 무엇일까? 빡코딩

테이블을 직접 한번 만들어 봅시다

CREATE TABLE `article` (`title` TINYTEXT NOT NULL,`body` TEXT NOT NULL,`timestamp` DATETIME DEFAULT CURRENT_TIMESTAMP

)

12345

article이라는 테이블을 만듭니다.CREATE TABLE `article`

지난 이야기 그래서 오늘은 블로그에는 무엇이 필요할까 MySQL과 친해지길 바래 렌더러는 무엇일까? 빡코딩

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과 친해지길 바래 렌더러는 무엇일까? 빡코딩

테이블을 직접 한번 만들어 봅시다

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과 친해지길 바래 렌더러는 무엇일까? 빡코딩

MySQL 콘솔로 직접 넣어봅시다전 당신이 직접 코드를 짜보길 원합니다

지난 이야기 그래서 오늘은 블로그에는 무엇이 필요할까 MySQL과 친해지길 바래 렌더러는 무엇일까? 빡코딩

일단 데이터베이스를 만들어봅니다.

CREATE DATABASE `blog`;use blog

12

지난 이야기 그래서 오늘은 블로그에는 무엇이 필요할까 MySQL과 친해지길 바래 렌더러는 무엇일까? 빡코딩

만들어진 테이블에 직접 넣어봅시다

INSERT INTO `article`(`title`, `body`) VALUES(‘첫번째 게시물입니다’, ‘첫번째 내용입니다’)

12

지난 이야기 그래서 오늘은 블로그에는 무엇이 필요할까 MySQL과 친해지길 바래 렌더러는 무엇일까? 빡코딩

만들어진 테이블에 직접 넣어봅시다

INSERT INTO `article`(`title`, `body`) VALUES(‘첫번째 게시물입니다’, ‘첫번째 내용입니다’)

12

INSERT INTO `article` article이란 테이블에 새로운 값을 입력하겠습니다.

지난 이야기 그래서 오늘은 블로그에는 무엇이 필요할까 MySQL과 친해지길 바래 렌더러는 무엇일까? 빡코딩

만들어진 테이블에 직접 넣어봅시다

INSERT INTO `article`(`title`, `body`) VALUES(‘첫번째 게시물입니다’, ‘첫번째 내용입니다’)

12

입력할 Column은 다음과 같습니다.

(`title`, `body`)

지난 이야기 그래서 오늘은 블로그에는 무엇이 필요할까 MySQL과 친해지길 바래 렌더러는 무엇일까? 빡코딩

만들어진 테이블에 직접 넣어봅시다

INSERT INTO `article`(`title`, `body`) VALUES(‘첫번째 게시물입니다’, ‘첫번째 내용입니다’)

12 그 Column에 들어갈 값은

다음과 같습니다.VALUES(‘첫번째 게시물입니다’, ‘첫번째 내용입니다’)

지난 이야기 그래서 오늘은 블로그에는 무엇이 필요할까 MySQL과 친해지길 바래 렌더러는 무엇일까? 빡코딩

넣은 값을 다시 한번 불러와봅시다.다시 복습해보기

지난 이야기 그래서 오늘은 블로그에는 무엇이 필요할까 MySQL과 친해지길 바래 렌더러는 무엇일까? 빡코딩

이번엔 파이선을 통해서 넣어봅시다난데? 난 쉬운 파이선인데?

지난 이야기 그래서 오늘은 블로그에는 무엇이 필요할까 MySQL과 친해지길 바래 렌더러는 무엇일까? 빡코딩

MySQL을 쉽게 쓸 수 있도록 도와주는 MySQLdb 라이브러리 다운로드

$ pip install MySQL-python

지난 이야기 그래서 오늘은 블로그에는 무엇이 필요할까 MySQL과 친해지길 바래 렌더러는 무엇일까? 빡코딩

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과 친해지길 바래 렌더러는 무엇일까? 빡코딩

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과 친해지길 바래 렌더러는 무엇일까? 빡코딩

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과 친해지길 바래 렌더러는 무엇일까? 빡코딩

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과 친해지길 바래 렌더러는 무엇일까? 빡코딩

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과 친해지길 바래 렌더러는 무엇일까? 빡코딩

12345

c.execute('SELECT * FROM `article`’)list = c.fetchall()

for i in list: print “%s : %s”%(i[0], i[1])

지난 이야기 그래서 오늘은 블로그에는 무엇이 필요할까 MySQL과 친해지길 바래 렌더러는 무엇일까? 빡코딩

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과 친해지길 바래 렌더러는 무엇일까? 빡코딩

12345

c.execute('SELECT * FROM `article`’)list = c.fetchall()

for i in list: print “%s : %s”%(i[0], i[1])

위 실행 결과의 전체를 리스트 형태로 가지고 옵니다.list = c.fetchall()

지난 이야기 그래서 오늘은 블로그에는 무엇이 필요할까 MySQL과 친해지길 바래 렌더러는 무엇일까? 빡코딩

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과 친해지길 바래 렌더러는 무엇일까? 빡코딩

(“안녕하세요”, “튜플입니다”)

수정할 수 없는 리스트입니다쌤, 튜플이 무엇이에요?

지난 이야기 그래서 오늘은 블로그에는 무엇이 필요할까 MySQL과 친해지길 바래 렌더러는 무엇일까? 빡코딩

프론트 단에서 어떻게 서버의 데이터를 보여줄까?

실은 쥐도 새도 모르게 배웠습니다(…)

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”)

지난 이야기 그래서 오늘은 블로그에는 무엇이 필요할까 MySQL과 친해지길 바래 렌더러는 무엇일까? 빡코딩

렌더러 (Render-er)Flask에서 파라미터를 받아 프론트앤드에서 띄워줌

1

URL이랑 를 받아라

2

ㅇㅎ ㅇㅋㅇㅋ ㄱㄷ

3

받아서 띄운다~

요 함수에는 요걸 보여줘야함HTML이랑 파라미터 보낸다

저번시간 +a

빈칸들 채우고!

지난 이야기 그래서 오늘은 블로그에는 무엇이 필요할까 MySQL과 친해지길 바래 렌더러는 무엇일까? 빡코딩

지난 이야기 그래서 오늘은 블로그에는 무엇이 필요할까 MySQL과 친해지길 바래 렌더러는 무엇일까? 빡코딩

Q. 다음 빈칸에 맞는 파라미터를 찾아 넣으시오.

<html><head> <meta charset=“UTF-8”></head><body> <p> </p> <!—— name을 받아 넣을것임 ——></body></html>

(가)

지난 이야기 그래서 오늘은 블로그에는 무엇이 필요할까 MySQL과 친해지길 바래 렌더러는 무엇일까? 빡코딩

Q. 다음 빈칸에 맞는 파라미터를 찾아 넣으시오.

<html><head> <meta charset=“UTF-8”></head><body> <p> </p> <!—— name을 받아 넣을것임 ——></body></html>

{{ name }}

지난 이야기 그래서 오늘은 블로그에는 무엇이 필요할까 MySQL과 친해지길 바래 렌더러는 무엇일까? 빡코딩

HTML에 구멍을 뚫고 Flask로 구멍을 메꿔준다

물론 구멍 안에는 파이썬 코드들을 사용할 수 있다

123456789

{{ parameter }}

{% if name==“배주웅” %}{% elif name=“김효준” %}{% else %}{% endif} %}

{% for … in … %}{% endfor %}

지난 이야기 그래서 오늘은 블로그에는 무엇이 필요할까 MySQL과 친해지길 바래 렌더러는 무엇일까? 빡코딩

기본적으로 파라미터를 출력할 때

파이썬의 if 문도 사용 가능하고,

파이썬의 for문 역시 사용 가능합니다.

지난 이야기 그래서 오늘은 블로그에는 무엇이 필요할까 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>

1234

@app.route(“/params_check”)def params_check(): return render_template(“params_check.html”, name=request.args[‘name’])

지난 이야기 그래서 오늘은 블로그에는 무엇이 필요할까 MySQL과 친해지길 바래 렌더러는 무엇일까? 빡코딩

시애수애수자주 볼 정도로 사랑하고, 한계까지 익혀라

修涯數愛視

감사합니다!글 쓰고 읽기. 쓴 글의 리스트 보기

수업때 만나요 :)

Recommended