03.31 Python 4(フラスコのリクエスト、リダイレクト)、データベース
7073 ワード
学識
モードGET (대문자로 할것) : 요청을 '전송'할때 요청내용을 'url'에 담는다.
웹브라우저입장에서볼떄 편하며, 어떤 정보를 가져올때 쓰는 방법,
고유한 웹페이지를 식별해서 가져올때, 다운받을때 사용= 뒤에 숫자만 바뀌는것
읽기만 가능
POST : '' 'body'에 담는다
브라우저에서 사이트에 정보를 추가, 수정,삭제,로그인 등 쓰는 작업할때 씀
url에 title,body가 없음,url이 아닌 제 3자로 표현된다(payload)
デフォルトでは、フラスコにGETが埋め込まれていますが、POST=この関数はルーティングが必要です.@app.route('/create_process/', method['POST']) (리스트형으로 표현)
def create_process():
return 'Sucess!'
メソッドに両方を同時に含めることもできます!ただし['POST']はGETを拒否する可能性があります
リクエストステートメント
from flask import request
Flaskのようにimportの後ろに入力します.
> from flask import Flask
from flask import request
와
from flask import Flask, request는 동일한 의미
nextId = 4 (함수밖에서 선언된 변수)
@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}/')
flaskが提供するリクエストアクセスフォームタグに含まれる情報
フレームワーク:POST方式で取得した情報を要求する.form「コンテンツ」を使用して入力値を取得する
1.入力値はcreate process()関数で作成する
2.ただしnextIdという変数は関数外で宣言され、Oへの変更はx=globalとして指定されます.
3.なぜトピックにglobalが必要ないのですか?=テーマを変えるのではなく、既存のテーマを加えたからです.テーマ=newTopicではダメです.
appendは、削除するだけならどうでもいいです.
4.たとえば、4というページ名が表示されます.でも前のページに接続するために
4-1人3のページにリダイレクトして接続する必要があります이 과정까지 하면
from flask import request, redirect 이런식으로 바꿔줘야함
createボタン->create process進捗->作成する/read/nextId+1/パラメータとしてリダイレクト->read/nextID+1-1-1-1/
delete
@app.route('/delete/<int:id>/', methods=['POST'])
def delete(id):
for topic in topics:
if topic['id'] == id:
topics.remove(topic)
break;
return redirect('/')
呼び出し/delete/id番号/削除可能
SQLite https://www.sqlitestudio.pl/
リレーショナル・データベースはテーブルです
sql文でデータベースを制御できます.
Glitchの端末で
sqlite 3/に入る
.open topics.sqlite 3/データベースファイルの作成
.exit/終了
sqlite3 topics.sqlite 3/sqlite studioを使用して作成したファイルを実行CREATE TABLE topics (
id INTEGER PRIMARY KEY,
title TEXT NOT NULL,
body TEXT
);
変数は小文字ですが、テル?読みやすさがよい
CREATE TABLEの作成
INSERTコマンドでデータの追加を許可INSERT INTO topics VALUES ('title':'SQL', 'body':'SQL is ')
リポジトリ
フレーム関数は私が作成し、呼び出しはフラスコで行い、完成品にのみ部品を置き換えます.
に感銘を与える
昨日の内容は理解できたと思っていたのですが、つながっている内容なのですが、集中できないので、ずっと理解不足だと感じていました.もう少し時間がかかります.
Reference
この問題について(03.31 Python 4(フラスコのリクエスト、リダイレクト)、データベース), 我々は、より多くの情報をここで見つけました
https://velog.io/@jeabin1129/03.31-파이썬4-데이터베이스
テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol
GET (대문자로 할것) : 요청을 '전송'할때 요청내용을 'url'에 담는다.
웹브라우저입장에서볼떄 편하며, 어떤 정보를 가져올때 쓰는 방법,
고유한 웹페이지를 식별해서 가져올때, 다운받을때 사용= 뒤에 숫자만 바뀌는것
읽기만 가능
POST : '' 'body'에 담는다
브라우저에서 사이트에 정보를 추가, 수정,삭제,로그인 등 쓰는 작업할때 씀
url에 title,body가 없음,url이 아닌 제 3자로 표현된다(payload)
@app.route('/create_process/', method['POST']) (리스트형으로 표현)
def create_process():
return 'Sucess!'
from flask import request
> from flask import Flask
from flask import request
와
from flask import Flask, request는 동일한 의미
nextId = 4 (함수밖에서 선언된 변수)
@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}/')
이 과정까지 하면
from flask import request, redirect 이런식으로 바꿔줘야함
@app.route('/delete/<int:id>/', methods=['POST'])
def delete(id):
for topic in topics:
if topic['id'] == id:
topics.remove(topic)
break;
return redirect('/')
CREATE TABLE topics (
id INTEGER PRIMARY KEY,
title TEXT NOT NULL,
body TEXT
);
INSERT INTO topics VALUES ('title':'SQL', 'body':'SQL is ')
昨日の内容は理解できたと思っていたのですが、つながっている内容なのですが、集中できないので、ずっと理解不足だと感じていました.もう少し時間がかかります.
Reference
この問題について(03.31 Python 4(フラスコのリクエスト、リダイレクト)、データベース), 我々は、より多くの情報をここで見つけました https://velog.io/@jeabin1129/03.31-파이썬4-데이터베이스テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol