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 ')
リポジトリ
フレーム関数は私が作成し、呼び出しはフラスコで行い、完成品にのみ部品を置き換えます.

に感銘を与える


昨日の内容は理解できたと思っていたのですが、つながっている内容なのですが、集中できないので、ずっと理解不足だと感じていました.もう少し時間がかかります.