[開発ログ6日目]Python Flask
24740 ワード
1.学習内容
1)Webフレームワークの概念
1-1)フロントエンド(フロントエンド、クライアント)
frontendとbackendが一緒に働いている人はfull stackエンジニアと呼ばれています.
1-3)Webフレームワーク
Webフレームワーク(Web Framework,WF)またはWebアプリケーションフレームワーク(Web Application Framework,WAF)は、動的Webページ、Webアプリケーション、またはWebサービス開発を支援するためのアプリケーションフレームワークである.Webページの開発中に発生する困難を減らすには、通常、データベース連動、テンプレート形式の標準、セッション管理、コード再利用などの機能が含まれます.
1-4) flask
フラスコはホームページを印刷する工場です.
ホームページ:https://flask.palletsprojects.com/en/2.1.x/
Pythonからダウンロード:Visual codeから端末のpip installフラスコにダウンロード
1-5)フラスコが作動していない場合
ホームページ:https://glitch.com/
ルーティングは、私たちが使用しているIPアドレスに基づいて、データに道を見つけさせるシステムです.
すなわち、ルーティングを「ルーティング」と呼び、ルーティングパケットを転送するネットワークデバイスを「ルータ」と呼び、「ルータ」はルーティングパケットを転送する行為を「ルーティング」と呼ぶ.
template()とは?
htmlなどで関数などを用いて文の重複や重複を防止すればflask tk上でテンプレート化を用いることでコードを簡略化できる.
@app.route("/")
def index():
return template('aa.html') #View 함수,html template를 불러온다.
例)from flask import Flask
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 ...."}
]
def template(content):
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>
</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}')
@app.route('/create/')
def create():
content = '''
<form action="/create/">
<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('/update/')
def update():
return 'Update'
app.run()
結果)初期画面
「create」をクリックすると
from flask import Flask
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 ...."}
]
def template(content):
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>
</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}')
@app.route('/create/')
def create():
content = '''
<form action="https://www.google.com/search">
<p><input type="text" name="title" placeholder="title"></p>
<p><textarea placeholder="body"></textarea></p>
<p><input type="submit" value="create"></p>
</form>
'''
return template(content)
@app.route('/update/')
def update():
return 'Update'
app.run()
結果)2.学習内容の難点または未解決の問題
from flask import Flask
app = Flask(__name__)
topics = [
{"id":1, "title":"html", "body":"html is ...."},
{"id":2, "title":"css", "body":"css is ...."}
]
def template(content):
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}
</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()
@app.route('/create/')
def create():
return 'Create'
@app.route('/update/')
def update():
return 'Update'
app.run()
この部分では,ラウンドとラウンドの概念を適用することは学習内容において困難である.3.ソリューションの作成
ルート選択-レッスンビデオを参照
3-1)まずcodeを入力し、glitchでpreviewでウィンドウ画面を開きます.
3-2)未亡人を開くと、次の住所が見えます.
3−3)ルーティングのために/create/を末尾に添付する.
<コメント>
@app.route('/create/')
def create():
return 'Create'
@app.route('/update/')
def update():
return 'Update'
でroute('/##/')を作成したので、作成するだけでなく、更新することもできます.3-4)結果
4.勉強の心得
これは今まで聞いた中で一番分かりにくい授業なので、復習が大切です.html、css、JavaScript、Pythonの後にflaskを加えると、それぞれのコンセプトが混ざっていて整理されていないような気がします.
また、教室で一緒にコードを作ればついていけるのですが、自分でやれば本当にできるのでしょうか?という考えが生まれた.
Reference
この問題について([開発ログ6日目]Python Flask), 我々は、より多くの情報をここで見つけました https://velog.io/@joseojin/개발일지6일차Python-Flaskテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol