[대구AI스쿨]13회차 - 데이터베이스 python연동
1.학습내용
1.1 어제 내용복습 및 request, redirect 추가 코딩
from flask import Flask, request, redirect
app = Flask(__name__)
topics = [
{"id":1, "title":"html", "body":"html is ...."},
{"id":2, "title":"css", "body":"css is ...."},
{"id":3, "title":"js", "body":"js is ...."}
]
nextId = 4
def template(content, id=None):
liTags = ''
for topic in topics:
liTags = liTags + f'<li><a href="/read/{topic["id"]}/">{topic["title"]}</a></li>'
return f'''
<html>
<body>
<h1><a href="/">WEB</a></h1>
<ol>
{liTags}
</ol>
{content}
<ul>
<li><a href="/create/">create</a></li>
<li>
<form action="/delete/{id}/" method="POST">
<input type="submit" value="delete">
</form>
</li>
</ul>
</body>
</html>
'''
@app.route("/")
def index():
return template('<h2>Welcome</h2>Hello, WEB!')
@app.route("/read/<int:id>/")
def read(id):
title = ''
body = ''
for topic in topics :
if topic['id'] == id:
title = topic['title']
body = topic['body']
break;
return template(f'<h2>{title}</h2>{body}', id)
@app.route('/create/')
def create():
content = '''
<form action="/create_process/" method="POST">
<p><input type="text" name="title" placeholder="title"></p>
<p><textarea name="body" placeholder="body"></textarea></p>
<p><input type="submit" value="create"></p>
</form>
'''
return template(content)
@app.route('/create_process/', methods=['POST'])
def create_process():
global nextId
title = request.form['title']
body = request.form['body']
newTopic = {"id":nextId, "title": title, "body": body}
topics.append(newTopic)
nextId = nextId + 1
return redirect(f'/read/{nextId-1}/')
@app.route('/delete/<int:id>/', methods=['POST'])
def delete(id):
for topic in topics:
if topic['id'] == id:
topics.remove(topic)
break;
return redirect('/')
# @app.route('/update/')
# def update():
# return 'Update'
app.run()
1.2 내가 습득한 것
-
flask 환경
python은 이미 깔려있고, flask를 터미널에서 설치 후 그 환경에서 코드를 짤수 있다.
터미널에서 pip install Flask 누르고 실행
-
flask 실행 코드
from flask import flask
app = flask(__name__)
- app을 실제로 실행시키는 코드 : 제일 첫줄과 함께 골격을 이룸
from flask import Flask, request, redirect
app = Flask(__name__)
~
app.run()
- route태그 페이지 담당자 지정하는 태그
: routing, 그것하는 애들을 router 함수 이름은 아무거나 해도 됌, 하지만 응답하는 값은 return으로 지정해준다.
: flask에서는 라이브러리라 부르지않고, 프레임워크라고 부른다.
함수는 우리가 만들기만하고, 호출은 flask가 하는 것. 이런형태를 프레임워크. 내 코드가 flask에 의해 사용되는 것이라 생각하면 됌.
@app.route("/")
def index():
return template('<h2>Welcome</h2>Hello, WEB!')
- 우리가 가지고 있는 데이터의 기본적 형태
대괄호=li 중괄호=개체 => 2차원 리스트
topics = [
{"id":1, "title":"html", "body":"html is ...."},
{"id":2, "title":"css", "body":"css is ...."}
]
- 작업 Tip!
주석 달기는 ctrl+/
2.학습내용 중 어려웠던 점
from flask import Flask, request, redirect
app = Flask(__name__)
topics = [
{"id":1, "title":"html", "body":"html is ...."},
{"id":2, "title":"css", "body":"css is ...."},
{"id":3, "title":"js", "body":"js is ...."}
]
nextId = 4
def template(content, id=None):
liTags = ''
for topic in topics:
liTags = liTags + f'<li><a href="/read/{topic["id"]}/">{topic["title"]}</a></li>'
return f'''
<html>
<body>
<h1><a href="/">WEB</a></h1>
<ol>
{liTags}
</ol>
{content}
<ul>
<li><a href="/create/">create</a></li>
<li>
<form action="/delete/{id}/" method="POST">
<input type="submit" value="delete">
</form>
</li>
</ul>
</body>
</html>
'''
@app.route("/")
def index():
return template('<h2>Welcome</h2>Hello, WEB!')
@app.route("/read/<int:id>/")
def read(id):
title = ''
body = ''
for topic in topics :
if topic['id'] == id:
title = topic['title']
body = topic['body']
break;
return template(f'<h2>{title}</h2>{body}', id)
@app.route('/create/')
def create():
content = '''
<form action="/create_process/" method="POST">
<p><input type="text" name="title" placeholder="title"></p>
<p><textarea name="body" placeholder="body"></textarea></p>
<p><input type="submit" value="create"></p>
</form>
'''
return template(content)
@app.route('/create_process/', methods=['POST'])
def create_process():
global nextId
title = request.form['title']
body = request.form['body']
newTopic = {"id":nextId, "title": title, "body": body}
topics.append(newTopic)
nextId = nextId + 1
return redirect(f'/read/{nextId-1}/')
@app.route('/delete/<int:id>/', methods=['POST'])
def delete(id):
for topic in topics:
if topic['id'] == id:
topics.remove(topic)
break;
return redirect('/')
# @app.route('/update/')
# def update():
# return 'Update'
app.run()
flask 환경
python은 이미 깔려있고, flask를 터미널에서 설치 후 그 환경에서 코드를 짤수 있다.
터미널에서 pip install Flask 누르고 실행
flask 실행 코드
from flask import flask
app = flask(__name__)
from flask import Flask, request, redirect
app = Flask(__name__)
~
app.run()
: routing, 그것하는 애들을 router 함수 이름은 아무거나 해도 됌, 하지만 응답하는 값은 return으로 지정해준다.
: flask에서는 라이브러리라 부르지않고, 프레임워크라고 부른다.
함수는 우리가 만들기만하고, 호출은 flask가 하는 것. 이런형태를 프레임워크. 내 코드가 flask에 의해 사용되는 것이라 생각하면 됌.
@app.route("/")
def index():
return template('<h2>Welcome</h2>Hello, WEB!')
대괄호=li 중괄호=개체 => 2차원 리스트
topics = [
{"id":1, "title":"html", "body":"html is ...."},
{"id":2, "title":"css", "body":"css is ...."}
]
주석 달기는 ctrl+/
코드 구문 자체를 하는 것에 어려움을 겪었다.
3.해결방법
반복적 복습!
4.소감
내가 모든 것을 코드를 외우고 하는 것보다 서치능력과 이미 만들어져 있는 것을 얼마나 잘 활용하는지에 따라 실력이 점차 성장하는 것임을 느꼈다.
Author And Source
이 문제에 관하여([대구AI스쿨]13회차 - 데이터베이스 python연동), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@diproutetree/대구AI스쿨13회차-데이터베이스-python연동저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)