溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Flask框架連接數(shù)據(jù)庫的方法

發(fā)布時間:2020-08-06 11:13:12 來源:億速云 閱讀:896 作者:小新 欄目:編程語言

這篇文章主要介紹了Flask框架連接數(shù)據(jù)庫的方法,具有一定借鑒價值,需要的朋友可以參考下。希望大家閱讀完這篇文章后大有收獲。下面讓小編帶著大家一起了解一下。

Flask不能直接連接數(shù)據(jù)庫,需要借助于ORM(Object Relational Mapper)。在這一部分,我們將借助于SQLAlchemy使用Postgres數(shù)據(jù)庫。

Flask框架連接數(shù)據(jù)庫的方法

安裝Flask-SQLAlchemy和Postgres

首先安裝flask-sqlalchemy:

$ pip install flask-sqlalchemy

然后從官方下載并安裝postgres:https://postgresapp.com/

創(chuàng)建數(shù)據(jù)庫

在終端中使用下面的命令創(chuàng)建一個appdb數(shù)據(jù)庫:

$ createdb appdb

更新應用配置

修改app.config,添加數(shù)據(jù)庫相關(guān)的配置信息:

app.config['DEBUG'] = True
app.config['SQLALCHEMY_DATABASE_URI']='postgresql://localhost/appdb'
SQLALCHEMY_TRACK_MODIFICATIONS = True
db = SQLAlchemy(app)

然后在代碼中就可以使用這些配置數(shù)據(jù)了:

from flask import Flask, request, render_template
from flask_sqlalchemy import SQLAlchemy
# Settingsapp = Flask(__name__)
app.config['DEBUG'] = Trueapp.config['SQLALCHEMY_DATABASE_URI'] = 'postgresql://localhost/appdb'
db = SQLAlchemy(app)@app.route('/')def hello_world():
    return 'Hello, World!'if __name__ == '__main__':
    app.run()

現(xiàn)在,讓我們創(chuàng)建第一個模型(Model)。所有模型的基類是db.Model,使用Column來定義數(shù)據(jù)列:

class Post(db.Model):
    id = db.Column(db.Integer(), primary_key=True)
    title = db.Column(db.String(80), unique=True)
    post_text = db.Column(db.String(255))
    
    def __init__(self, title, post_text):
        self.title = title
        self.post_text = post_text

在代碼中使用模型:

from flask import Flask
from flask_sqlalchemy import SQLAlchemy
app = Flask(__name__)
app.config['SQLALCHEMY_DATABASE_URI'] = 'postgresql://localhost/testdb'
db = SQLAlchemy(app)
class Post(db.Model):
    id = db.Column(db.Integer(), primary_key=True)
    title = db.Column(db.String(80), unique=True)
    post_text = db.Column(db.String(255))
    def __init__(self, title, post_text):
        self.title = title
        self.post_text = post_text
@app.route('/')
def index():
    return "Hello World"
app = Flask(__name__)
if __name__ == "__main__":
    app.run()

感謝你能夠認真閱讀完這篇文章,希望小編分享Flask框架連接數(shù)據(jù)庫的方法內(nèi)容對大家有幫助,同時也希望大家多多支持億速云,關(guān)注億速云行業(yè)資訊頻道,遇到問題就找億速云,詳細的解決方法等著你來學習!

向AI問一下細節(jié)

免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI