1、安裝flask_sqlalchemy和pymysql包
pip install flask-sqlalchemy
pip install pymysql
2、進行配置
使用Flask-SQLAlchemy擴展操作數(shù)據(jù)庫,首先需要通過URL建立數(shù)據(jù)庫連接,必須保存到Flask配置對象的SQLALCHEMY_DATABASE_URI中。
HOSTNAME = '127.0.0.1'
PORT = '3306'
DATABASE = 'flask_test'
USERNAME = 'root'
PASSWORD = 'root'
DB_URI = 'mysql+pymysql://{}:{}@{}:{}/{}?charset=utf8'.format(USERNAME,PASSWORD,HOSTNAME,PORT,DATABASE)
app.config['SQLALCHEMY_DATABASE_URI'] = DB_URI
其中HOSTNAME為路由地址
PORT為端口號,我在創(chuàng)建數(shù)據(jù)庫時沒有更改,所以用的默認的3306端口號
DATABASE為數(shù)據(jù)庫名字
后面兩個參數(shù)為數(shù)據(jù)庫用戶名和密碼
3、創(chuàng)建SQLALchemy實例
db = SQLAlchemy(app)
我這里創(chuàng)建的實例記為db
4、創(chuàng)建ORM類
創(chuàng)建這個類必須繼承db.Model !!!
class Article(db.Model):
__tablename__ = "article"
id = db.Column(db.Integer, primary_key=True, autoincrement=True)
title = db.Column(db.String(200), nullable=False)
content = db.Column(db.Text, nullable=False)
第二行設置數(shù)據(jù)庫表名為article。第三行設置id項,將其設置為整數(shù)項,并且設置為主鍵以及自動增長。第四行設置title項,將其設置為含200個字符的字符串,并設置不能非空。第五行設置content項,將其設置為db.Text格式并且設置不能非空。
5、創(chuàng)建表
db.create_all()
然后就會發(fā)現(xiàn),數(shù)據(jù)庫中多出一張表:
當然,這張表目前還是空的
?6、在表中增刪查改數(shù)據(jù)
?我們可以在一個視圖函數(shù)中執(zhí)行這些操作,當然也可以直接執(zhí)行
@app.route("/article")
def article_view():
# 添加數(shù)據(jù)
article = Article(title="鋼鐵是怎樣煉成的", content="xxx")
db.session.add(article)
db.session.commit()
# # 查詢數(shù)據(jù)
# article = Article.query.filter_by(id=1)[0]
# print(article.title)
#
# # 修改數(shù)據(jù)
# article = Article.query.filter_by(id=1)[0]
# article.content = "yyy"
# db.session.commit()
#
# # 刪除數(shù)據(jù)
# article = Article.query.filter_by(id=1)[0]
# db.session.delete(article)
# db.session.commit()
return "數(shù)據(jù)操作成功"
添加數(shù)據(jù)時沒加id,是因為我們之前設置id的autoincrement為True,于是它會自動增加。?
執(zhí)行完發(fā)現(xiàn)數(shù)據(jù)庫中多出了如下:?
文章來源:http://www.zghlxwxcb.cn/news/detail-455433.html
其他三步結(jié)果請自行查看。當然,如果想觀察每一步的結(jié)果,在執(zhí)行添加數(shù)據(jù)前最好最好先將其他三步加上注釋,對于其他三步也是一樣。文章來源地址http://www.zghlxwxcb.cn/news/detail-455433.html
到了這里,關于flask-sqlalchemy連接數(shù)據(jù)庫的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網(wǎng)!