[python 04]Flask Request,直接掲示板機能を実現
Review
HTTP GET,POST方式
GETは,要求送信時に要求内容をURLにロードして転送し,POSTはHTTPメッセージのBodyにロードして転送する.FlaskでPOST方式を使用するには、この関数をルーティングする際に明記する必要があります.デフォルトではGETのみが処理されます.@app.route('/create_process/', methods=['POST'])
def create_process():
return 'Success!'
方法には、GET、POSTの2種類が含まれる.
Flask request、redirectによるcreate機能の実装
from flask import request
上のコードはフラスコのrequestを使用できます.
flaskが提供するリクエストにより、フォームタグは、入力された情報に簡単にアクセスできます.@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}
nextId = nextId + 1
topics.append(newTopic)
return redirect(f'/read/{nextId-1}')
POSTで情報を要求する.form[「formラベルのname」]を使用して入力値を取得できます.
createプロセスを処理するためにcreate process()関数が作成されました.global nextId
は、関数内で関数外で宣言されたnextId変数を変更するために必要な構文です.近づくことはできますが、変更はできません.(リストの場合、内容を変更することなくappend、deleteなどの操作を実行でき、グローバル宣言は必要ありません)from flask import redirect
リダイレクトもFlaskによってサポートされており、ページを別の場所に接続する関数です.@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}
nextId = nextId + 1
topics.append(newTopic)
return redirect(f'/read/{nextId-1}')
createボタンをクリックし、create processに進み、最後に/read/さっき入力した私のid/をパラメータとするリダイレクト関数を返し、/read/id/でルーティングされた関数に移動します.
Delete機能の実装
@app.route('/delete/<int:num>/')
def delete(num):
for topic in topics:
if(num==topic['id']):
topics.remove(topic)
break
return template(f'<h2>Delete Succeeded</h2>Content number {num} deleted.')
/delete/id番号/を呼び出したときにこの投稿を削除することを実現しました.
SQLiteの起動
GlitchにはSQLiteが内蔵されており、すぐに使用できます.Glitch端末に次のように入力します.sqlite3
sqlite 3にアクセスし、次のコマンドを使用してデータベースファイルを作成できます..open topics.sqlite3
そしてsqliteから脱退.exit
入力します.
次のコマンド語topicesでsqlite 3ファイルを使用してSQLiteを実行します.sqlite3 topics.sqlite3
今がテーマsqlite 3ファイルを使用してデータベースを構成できます.CREATE TABLE topics (
id INTEGER PRIMARY KEY,
title TEXT NOT NULL,
body TEXT
);
CREATEコマンドを使用してテーブルを作成し、INSERTコマンドを使用してデータを追加できます.INSERT INTO topics ('title', 'body') VALUES ('SQLite', 'SQLite is ...')
? Question
FlaskのPythonを使用してWebページを作成する場合、HTMLとJavaScript構文を一度に操作すると、混同やエラーが発生することがよくあります.
! Answer
慣れるしかない.
Comment
初心者が近づきやすいもので授業を構成し、簡単で概念を理解しやすい.Djangoの代わりにSQLiteを使用し、Flask、MySQLなどの他のデータベースを使用することで、実習時間と難易度を低減し、プロセス全体を理解しやすくします.明日はデータベースをバインドしてウェブサイトを作成できるので、楽しみです.
Reference
この問題について([python 04]Flask Request,直接掲示板機能を実現), 我々は、より多くの情報をここで見つけました
https://velog.io/@boracious/Python-04
テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol
@app.route('/create_process/', methods=['POST'])
def create_process():
return 'Success!'
from flask import request
@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}
nextId = nextId + 1
topics.append(newTopic)
return redirect(f'/read/{nextId-1}')
global nextId
from flask import redirect
@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}
nextId = nextId + 1
topics.append(newTopic)
return redirect(f'/read/{nextId-1}')
@app.route('/delete/<int:num>/')
def delete(num):
for topic in topics:
if(num==topic['id']):
topics.remove(topic)
break
return template(f'<h2>Delete Succeeded</h2>Content number {num} deleted.')
sqlite3
.open topics.sqlite3
.exit
sqlite3 topics.sqlite3
CREATE TABLE topics (
id INTEGER PRIMARY KEY,
title TEXT NOT NULL,
body TEXT
);
INSERT INTO topics ('title', 'body') VALUES ('SQLite', 'SQLite is ...')
FlaskのPythonを使用してWebページを作成する場合、HTMLとJavaScript構文を一度に操作すると、混同やエラーが発生することがよくあります.
! Answer
慣れるしかない.
Comment
初心者が近づきやすいもので授業を構成し、簡単で概念を理解しやすい.Djangoの代わりにSQLiteを使用し、Flask、MySQLなどの他のデータベースを使用することで、実習時間と難易度を低減し、プロセス全体を理解しやすくします.明日はデータベースをバインドしてウェブサイトを作成できるので、楽しみです.
Reference
この問題について([python 04]Flask Request,直接掲示板機能を実現), 我々は、より多くの情報をここで見つけました
https://velog.io/@boracious/Python-04
テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol
初心者が近づきやすいもので授業を構成し、簡単で概念を理解しやすい.Djangoの代わりにSQLiteを使用し、Flask、MySQLなどの他のデータベースを使用することで、実習時間と難易度を低減し、プロセス全体を理解しやすくします.明日はデータベースをバインドしてウェブサイトを作成できるので、楽しみです.
Reference
この問題について([python 04]Flask Request,直接掲示板機能を実現), 我々は、より多くの情報をここで見つけました https://velog.io/@boracious/Python-04テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol