昨天我們介紹了如何在SQLite根據sql創建database,至於要怎麼在flask使用這個database呢?今天將帶大家實作。
建立資料庫連線:在 Flask 應用程式中建立與 SQLite 資料庫的連線。你可以在 before_request 函式中建立連線,並在 teardown_request 函式中關閉連線:
 SQLITE_DB_PATH = 'test.db'
 SQLITE_DB_SCHEMA = 'test.sql'
 def get_db():
     db = getattr(g, '_database', None)
     if db is None:
         db = g._database = sqlite3.connect(SQLITE_DB_PATH)
         # Enable foreign key check
         db.execute("PRAGMA foreign_keys = ON")
     return db
@app.teardown_appcontext
def close_db(exception):
    db = getattr(g, '_database', None)
    if db is not None:
        db.close()
建立資料表和執行 SQL 查詢:你可以使用 SQLite 提供的 SQL 語法來建立資料表、插入資料和查詢資料。以下是一個示範:
@app.route('/create_table')
def create_table():
    db = get_db()
    cursor = db.cursor()
    cursor.execute('CREATE TABLE IF NOT EXISTS users (id INTEGER PRIMARY KEY, name TEXT)')
    db.commit()
    return 'Table created successfully'
@app.route('/insert_data')
def insert_data():
    db = get_db()
    cursor = db.cursor()
    cursor.execute('INSERT INTO users (name) VALUES (?)', ('John',))
    db.commit()
    return 'Data inserted successfully'
@app.route('/get_data')
def get_data():
     db = get_db()
     cursor = db.cursor()
     cursor.execute('SELECT * FROM users')
     data = cursor.fetchall()
     password = db.execute(
         'SELECT * FROM members'
     ).fetchall()
     return str(password)
在這個示範中,我們建立了一個 users 資料表,插入了一筆資料並從資料庫中檢索所有的資料,此外可以透過網址get_data得到剛剛新增的資料,以及day-9創立的member table。
我們可以發現將def insert_data綁定post就能達成註冊功能,而登入認證只要透過sql的where比對即可,明天將教大家如何達成登入驗證以及使用flask login來達成登入狀態。