[開発ログ2022.3.30]Python Python Flask
18515 ワード
1.勉強の内容
今まで習ったことがあります.
html、css、jsなどはWebブラウザによって解析され、ユーザーがWebブラウザの前にいる場合.
Webブラウザを閲覧するユーザーにとってはhtml、css、jsの3つの技術しか見られません.
従って、この技術は「フロントエンド技術」または「クライアント技術」クライアント技術と呼ばれる.
また,現在学習中のPythonや未学習のphp,java,modejsなどWebサーバ内でのみ行う操作の技術をBack Endバックエンドまたはサーバ側で実現する技術,サーバ側技術サーバ側技術と呼ぶ.
1)Flaskの起動
今日は前回作ったパンダとあまり差がなく、Flaskからvisualstudio codeをダウンロードしてから始まります.$ pip install Flask
このFlashをダウンロードすると、from flask import Flask
app = Flask(__name__)
@app.route("/")
def hello_world():
return "<p>Hello, World!</p>"
app.run()
上のコードフォームはサイトからインポートして使用し、htmlを使用せずにWebサーバを作成できます.
このとき@app.route("/")
def hello_world():
return "<p>Hello, World!</p>"
のコード入力値が/の場合
hello worldは値を処理するコードです.
2) Glitch.コングリッチ
ゴルスサーバーは、無料のサーバクラウドサービスを提供するサイトです.
右側のルーペでFlaskを検索すると、
これらのフラスコが表示され、このボタンをクリックすると、画面右下隅にあるRemix yourボタンをクリックします.
フラスコ形式が複製され、個人用に使用されます.
ここから.shファイルの表示
python server.py
server.PyはPythonプログラムを実行しています
サーバーで提供されているPythonバージョンはPython 2.7で、Python 3ではありません.
python3 server.py
に変更します.
また、同サイトの下部から見ると
左から現在のコードの状態です.
実行コードのログ(エラーが発生した場合にチェックしやすい)
ターミナル
ツール
予行演習
機能があります.
3)Flashの使用
1)同じFlashコードフォーマットを取得し、コードの作成を開始します.from flask import Flask
app = Flask(__name__)
app.run()
基本的な方法で活性化してフラスコに入れた後. <html>
<body>
<h1><a href="/">WEB</a></h1>
</body>
</html>
基本的なhtml形式を作って整理して行いますtopics = [
{"id":1, "title":"html", "body":"html is ...."},
{"id":2, "title":"css", "body":"css is ...."},
{"id":3, "title":"js", "body":"js is ...."}
]
まずtopicesという名前のリストを与え、dictionaryを使用して各リストに名前を付けます.
その後重複するコードが多すぎます.
FlashサイトのRoutingテクノロジーが使用されます.def template():
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>
</body>
</html>
'''
これらの関数を作成すると、
topicesという名前の辞書からtopicという名前の情報が得られ、liTags='に表示されます.
この場合、繰り返し文を使用してseidの値に基づいてtitleを出力します.トピックから抽出したliTagsのid値によって、入力したtitle値とbody値が異なります.
したがって、このコードを使用すると、@app.route("/")
def index():
return template('<h2>Welcome</h2>Hello,WEB!')
これらのコードを使用します.
このような画面が現れます
それをあまりねじっていない.@app.route("/")
def index():
return template('<h2>Read</h2>Hello, READ!')
に変更した場合
画面上の太字WelcomeがReadとして表示されます.
スクリーン上の小さなハローWEB!ハロー、READだ!道.
出てくるよ.
本明細書で使用する場合.@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}')
起動/read//.
id値に基づいて指定位置に入る
idの1番目のidの値に基づいて
titleの値はtitleのtitle値を表す.
bodyの値はtopicのbody値に代入される.
画面出力のコードを有効にします.
その後、このように作成されたルーティングを使用すると
idが1のhtmlをクリックします.
idが2のcssキー
を押す
id 3のjs 
同じ画面のコードと動作します.
に続く
createをクリックしたときに開始するルーティングを作成します.
上記のFlashサイトのルーティング技術を使用してより深く設定すれば、上記の関数を使用することができます.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>
'''
これらのtemplate関数を作成します.@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)
create起動時.
titleというplaceholderテキストが表示されました
次にbodyというtextareaを作成し、placeholderはbodyです.
次にcreateというsubmitをクリックします.
出力される結果値はです.
2.学習内容の難点
授業中にミスをして、以前解決した比較的修正の方法を使っても、役に立たない問題が発生しました.
3.解決方法
これは授業中に質問をするときに確認したもので、これまでの他の技術とは異なり、Pythonのインデントの有無が重要であるため、役に立たないことがわかります.
4.勉強の心得
従来のjsやpythonに比べて、今日の授業は違って、私は多くの新しいことを学びました.疎かで慣れていないところで多くの間違いが発生し、学ぶほど複雑になりました.
特に、今日発生した問題のインデントについては、独自の方法で作成されたコードがシード企業なのか制御企業なのか分からないため、インデントが正しくなく、スペースキーの形状に従ってインデントしたいだけで、多くのエラーが発生しました.これはよく使うことと熟知することが大切だと思います.
Reference
この問題について([開発ログ2022.3.30]Python Python Flask), 我々は、より多くの情報をここで見つけました
https://velog.io/@jeminheo0208/개발일지-2022.3.30-Python-파이썬-Flask
テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol
$ pip install Flask
from flask import Flask
app = Flask(__name__)
@app.route("/")
def hello_world():
return "<p>Hello, World!</p>"
app.run()
@app.route("/")
def hello_world():
return "<p>Hello, World!</p>"
from flask import Flask
app = Flask(__name__)
app.run()
<html>
<body>
<h1><a href="/">WEB</a></h1>
</body>
</html>
topics = [
{"id":1, "title":"html", "body":"html is ...."},
{"id":2, "title":"css", "body":"css is ...."},
{"id":3, "title":"js", "body":"js is ...."}
]
def template():
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>
</body>
</html>
'''
@app.route("/")
def index():
return template('<h2>Welcome</h2>Hello,WEB!')
@app.route("/")
def index():
return template('<h2>Read</h2>Hello, READ!')
@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値に基づいて指定位置に入る
idの1番目のidの値に基づいて
titleの値はtitleのtitle値を表す.
bodyの値はtopicのbody値に代入される.
画面出力のコードを有効にします.
その後、このように作成されたルーティングを使用すると
idが1のhtmlをクリックします.
idが2のcssキー
id 3のjs
同じ画面のコードと動作します.
に続く
createをクリックしたときに開始するルーティングを作成します.
上記のFlashサイトのルーティング技術を使用してより深く設定すれば、上記の関数を使用することができます.
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>
'''
これらのtemplate関数を作成します.@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)
create起動時.titleというplaceholderテキストが表示されました
次にbodyというtextareaを作成し、placeholderはbodyです.
次にcreateというsubmitをクリックします.
出力される結果値はです.
2.学習内容の難点
授業中にミスをして、以前解決した比較的修正の方法を使っても、役に立たない問題が発生しました.
3.解決方法
これは授業中に質問をするときに確認したもので、これまでの他の技術とは異なり、Pythonのインデントの有無が重要であるため、役に立たないことがわかります.
4.勉強の心得
従来のjsやpythonに比べて、今日の授業は違って、私は多くの新しいことを学びました.疎かで慣れていないところで多くの間違いが発生し、学ぶほど複雑になりました.
特に、今日発生した問題のインデントについては、独自の方法で作成されたコードがシード企業なのか制御企業なのか分からないため、インデントが正しくなく、スペースキーの形状に従ってインデントしたいだけで、多くのエラーが発生しました.これはよく使うことと熟知することが大切だと思います.
これは授業中に質問をするときに確認したもので、これまでの他の技術とは異なり、Pythonのインデントの有無が重要であるため、役に立たないことがわかります.
4.勉強の心得
従来のjsやpythonに比べて、今日の授業は違って、私は多くの新しいことを学びました.疎かで慣れていないところで多くの間違いが発生し、学ぶほど複雑になりました.
特に、今日発生した問題のインデントについては、独自の方法で作成されたコードがシード企業なのか制御企業なのか分からないため、インデントが正しくなく、スペースキーの形状に従ってインデントしたいだけで、多くのエラーが発生しました.これはよく使うことと熟知することが大切だと思います.
Reference
この問題について([開発ログ2022.3.30]Python Python Flask), 我々は、より多くの情報をここで見つけました https://velog.io/@jeminheo0208/개발일지-2022.3.30-Python-파이썬-Flaskテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol