研修第11課
1.勉強の内容
コアはデータ要求と送信コードです
from flask import Flask, request, redirect
-importは、他のプログラムからデータをロードすることを意味します.
-アプリケーションは、生成された読み込み変更を削除するだけです.
-フラスコからapproute("/?/")にデータを要求し、値応答を返す
-liTagsという名前の変数を定義し、{liTags}に入れます.
-topicのデータをtopicの名前で取り出し、liラベルを作成し、既存のliTagsに追加してリストにします.@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)
#template = 견본, 현판이라는 뜻
-template関数=呼び出された部品=フレームワーク
-サーバにデータを転送=formラベル
-ユーザが入力した各種タグを受信し、行為後にコミットする際のaction
-処理を行わない場合、get方式で処理し、方法POSTをget値とし、urlではなくPOST方式でデータ転送を行う
-requestを使用してpost方式で送信されたデータを受信
-tile、bodyの値を読み取り、newtopicesを作成し、トピックにデータを追加するためにデータを設定します.
-新たにidが追加された値をnextIdに設定し、値4を付与します.(4回目だったので)
-nextIdプラス+1次の値を準備
-appendを使用して最後尾に要素を追加
-nexidは関数以外で定義されているため、変更できません.globalを使用して変更
-リダイレクトにより、生成された文書をf'/read/{nextid-1}/'に戻して表示できます.@app.route('/create_process/', methods=['POST']) #get방식을 거부, 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}/')
-deleteタグで生成された記事を削除できます
-deleteボタンを作成し、postで指定します.<li>
<form action="/delete/{id}/" method="POST">
<input type="submit" value="delete">
</form>
</li>
@app.route('/delete/<int:id>/', methods=['POST']) #get도 받을 수 있기 때문에 s 붙임
def delete(id):
for topic in topics:
if topic['id'] == id:
topics.remove(topic)
break;
return redirect('/')
データベース#データベース#
-1970年代からのデータベース
-大量のWebシステムが登場するにつれて、データが爆発的に増加し、管理が必要になる=>データベース
-リレーショナル、階層型、ドキュメント型...etcデータベース(主にリレーショナル・データベース)
-過去50年間で、モデルの強者の地位を逃したことのないリレーショナル・データベース
-情報産業の心臓=データベース
-最近は人工知能に目を向けていますが、データベースは最も本質的な分野です.
-SQL=構造化=テーブルquery language
-リレーショナル・データベース=Excelの深化=テーブル
-制御時にSQL文でコマンド言語でテーブルを制御できます
-topics.sqlite 3=topicesという名前のデータベースを作成
2.勉強内容の難点。
@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)
#template = 견본, 현판이라는 뜻
@app.route('/create_process/', methods=['POST']) #get방식을 거부, 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}/')
<li>
<form action="/delete/{id}/" method="POST">
<input type="submit" value="delete">
</form>
</li>
@app.route('/delete/<int:id>/', methods=['POST']) #get도 받을 수 있기 때문에 s 붙임
def delete(id):
for topic in topics:
if topic['id'] == id:
topics.remove(topic)
break;
return redirect('/')
3.解決方法
4.勉強の心得
Reference
この問題について(研修第11課), 我々は、より多くの情報をここで見つけました https://velog.io/@devil66v/교육-11일차-강의テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol