Web框架——Flask系列之Flask-SQLAlchemy安装与使用 定义数据模型(八)
生活随笔
收集整理的這篇文章主要介紹了
Web框架——Flask系列之Flask-SQLAlchemy安装与使用 定义数据模型(八)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
Flask-SQLAlchemy安裝及設置
- SQLALchemy 實際上是對數據庫的抽象,讓開發者不用直接和 SQL 語句打交道,而是通過 Python 對象來操作數據庫,在舍棄一些性能開銷的同時,換來的是開發效率的較大提升
- SQLAlchemy是一個關系型數據庫框架,它提供了高層的 ORM 和底層的原生數據庫的操作。flask-sqlalchemy 是一個簡化了 SQLAlchemy 操作的flask擴展。
- 文檔地址:http://docs.jinkan.org/docs/flask-sqlalchemy
一、安裝
安裝 flask-sqlalchemy
pip install flask-sqlalchemy如果連接的是 mysql 數據庫,需要安裝 mysqldb
pip install flask-mysqldb提示:如果flask-mysqldb安裝不上,安裝, pip install pymysql
二、數據庫連接設置
- 設置數據庫的鏈接地址,追蹤信息
- 格式:mysql://<用戶名>:<密碼>@:<端口>/數據庫名稱
查看映射的sql語句,設置: app.config[‘SQLALCHEMY_ECHO’] = True
- 配置完成需要去 MySQL 中創建項目所使用的數據庫
三、其他配置信息
連接其他數據庫
完整連接 URI 列表請跳轉到 SQLAlchemy 下面的文檔 (Supported Databases) 。這里給出一些 常見的連接字符串。
- Postgres:
postgresql://scott:tiger@localhost/mydatabase
- MySQL:
mysql://scott:tiger@localhost/mydatabase
- Oracle:
oracle://scott:tiger@127.0.0.1:1521/sidname
- SQLite (注意開頭的四個斜線):
sqlite:absolute/path/to/foo.db
常用的SQLAlchemy字段類型
常用的SQLAlchemy列選項
常用的SQLAlchemy關系選項
四、代碼演示(定義數據模型)
from flask import Flask from flask_sqlalchemy import SQLAlchemyapp = Flask(__name__)# 數據庫鏈接地址 app.config['SQLALCHEMY_DATABASE_URI'] = 'mysql://root:root@127.0.0.1/flask_sql_demo' # 動態追蹤修改設置,如未設置只會提示警告,不建議開啟,未來版本中會移除 app.config['SQLALCHEMY_TRACK_MODIFICATIONS'] = Falsedb = SQLAlchemy(app)''' 兩張表 角色(管理員/普通用戶) 用戶(角色ID) '''# 數據庫的模型,需要繼承db.Model # 角色表 class Role(db.Model):# 定義表名__tablename__ = 'roles'# 定義字段# db.Column表示是一個字段id = db.Column(db.Integer,primary_key=True)name = db.Column(db.String(16),unique=True)# 用戶表 class User(db.Model):# 定義表名__tablename__ = 'users'# 定義字段id = db.Column(db.Integer, primary_key=True)name = db.Column(db.String(16), unique=True)# db.ForeignKey('roles.id')表示是外鍵,需要傳參數:表名.字段名role_id = db.Column(db.Integer,db.ForeignKey('roles.id'))@app.route('/')def index():return 'Hello flask!' if __name__ == '__main__':app.run(debug=True)總結
以上是生活随笔為你收集整理的Web框架——Flask系列之Flask-SQLAlchemy安装与使用 定义数据模型(八)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: python简笔画怎么画_怎样用tk语句
- 下一篇: react脚手架配置代理解决跨域问题