[開発ログ8日目]フラスコアプリケーションへのデータベースのバインド
13898 ワード
1.学習内容
1) reivew
1-1)フラスコの運転方法app = Flask(__name__)
~~
app.run()
1-2)家庭訪問の方法 @app.route('/')
ジェジュン("/")は家族を訪問する方法です.
1-3)template()機能
template()は重複を解消する機能です.
2)PythonとSqliteの接続-読み取り可能
2-1)表に次のコードを記述します.sqlite3
.open db.sqlite3
CREATE TABLE topics (
id INTEGER PRIMARY KEY,
title TEXT NOT NULL,
body TEXT
)
;
INSERT INTO topics (title,body) VALUES('SQLite', 'SQLite is ...');
2-2)小故障読取.pyを作成します.
ファイルに読み込みます.pyファイルの作成
read.pyに次のコードを記述します.import sqlite3
conn = sqlite3.connect('db.sqlite3')
curor = conn.cursor()
curor.execute('SELECT * FROM topics')
topics = curor.fetchall()
print(topics)
その後、.exit
2-3)python 3をテーブルから読み込みます.py入力
結果:1 SQLite
(1はidを表す)
3)PythonとSqliteの連携書込み機能
3-1)小さな障害を作成します.pyを作成します.
ファイルに作成します.pyファイルを作成したら、次のコードを入力します.import sqlite3
conn = sqlite3.connect('db.sqlite3')
curor = conn.cursor()
title = input('title? ')
body = input('body? ')
curor.execute('INSERT INTO topics (title, body) VALUES(?, ?)', (title, body))
conn.commit()
conn.close()
3-2)下表python3 create.py
入力した場合
title? mysqlの後、
body? これでMySQLは….
黙っていればいいのに.
<コメント>
もう一度確認するために、テーブルの上にpython3 create.py
入力後、下図のように表示される画面が良いです.
4)createから読み込む
importはモジュールをロードするコードで、最後にimport readと書くべきです.
create.pyに次のコードを入力します.
import sqlite3
conn = sqlite3.connect('db.sqlite3')
curor = conn.cursor()
title = input('title? ')
body = input('body? ')
curor.execute('INSERT INTO topics (title, body) VALUES(?, ?)', (title, body))
conn.commit()
conn.close()
import read
その後terminalに行ってpython 3 readを読みます.py
title? 甲骨文
body?これで甲骨文...そう言えば.
1 SQLite
2 mysql
3 oracle
表示されると、createでreadウィンドウが読み込まれます.
5) server.pyでトピックをDBに変換する方法
既存のトピックをDBに変更すると、ファイルとして保存されるため、情報を永続的に保存できます.topics = [
{"id":1, "title":"html", "body":"html is ...."},
{"id":2, "title":"css", "body":"css is ...."},
{"id":3, "title":"js", "body":"js is ...."}
]
5-1)sqliteを先に使用する必要があるのでimport sqlite 3from flask import Flask, request, redirect
import sqlite3
5-2)sqlite 3への接続方法app = Flask(__name__)
import sqlite3
topics = [
{"id":1, "title":"html", "body":"html is ...."},
{"id":2, "title":"css", "body":"css is ...."},
{"id":3, "title":"js", "body":"js is ...."}
]
nextId = 4
def template(content, id=None):
liTags = ''
for topic in topics:
liTags = liTags + f'<li><a href="/read/{topic["id"]}/">{topic["title"]}</a></li>'
return f'''
トピックのトピック:
LiTags=liTags+f'
app = Flask(__name__)
~~
app.run()
@app.route('/')
sqlite3
.open db.sqlite3
CREATE TABLE topics (
id INTEGER PRIMARY KEY,
title TEXT NOT NULL,
body TEXT
)
;
INSERT INTO topics (title,body) VALUES('SQLite', 'SQLite is ...');
import sqlite3
conn = sqlite3.connect('db.sqlite3')
curor = conn.cursor()
curor.execute('SELECT * FROM topics')
topics = curor.fetchall()
print(topics)
.exit
import sqlite3
conn = sqlite3.connect('db.sqlite3')
curor = conn.cursor()
title = input('title? ')
body = input('body? ')
curor.execute('INSERT INTO topics (title, body) VALUES(?, ?)', (title, body))
conn.commit()
conn.close()
python3 create.py
python3 create.py
import sqlite3
conn = sqlite3.connect('db.sqlite3')
curor = conn.cursor()
title = input('title? ')
body = input('body? ')
curor.execute('INSERT INTO topics (title, body) VALUES(?, ?)', (title, body))
conn.commit()
conn.close()
import read
topics = [
{"id":1, "title":"html", "body":"html is ...."},
{"id":2, "title":"css", "body":"css is ...."},
{"id":3, "title":"js", "body":"js is ...."}
]
from flask import Flask, request, redirect
import sqlite3
app = Flask(__name__)
import sqlite3
topics = [
{"id":1, "title":"html", "body":"html is ...."},
{"id":2, "title":"css", "body":"css is ...."},
{"id":3, "title":"js", "body":"js is ...."}
]
nextId = 4
def template(content, id=None):
liTags = ''
for topic in topics:
liTags = liTags + f'<li><a href="/read/{topic["id"]}/">{topic["title"]}</a></li>'
return f'''
Reference
この問題について([開発ログ8日目]フラスコアプリケーションへのデータベースのバインド), 我々は、より多くの情報をここで見つけました https://velog.io/@joseojin/개발일지8일차플라스크-앱에-데이터베이스-연동テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol