Flask使用mysql数据库
来源:互联网 发布:java jdbc 编辑:程序博客网 时间:2024/05/18 00:47
我使用的数据库框架为:Flask-SQLAlchemy,它是一个Flask扩展,这个扩展包装了SQLAlchemy,支持多种数据库后台。
1.Flask-SQLAlchemy
Flask-SQLAlchemy安装:pip install flask-sqlalchemy
安装完成之后,还需要安装pymysql(pymysql是python中操作mysql的模块):pip install pymysql
在Flask-SQLAlchemy中,数据库使用URL指定,MySQL的url为:mysql://username:password@hostname/database。因为Flask-SQLAlchemy默认使用的是mysqldb,而我使用的是pymysql,所以url还需要指定pymysql,即:mysql+pymysql://username:password@hostname/database。
URL必须配置到Flask配置对像的SQLALCHEMY_DATABASE_URI中
hello.py中配置数据库:
from flask_sqlalchemy import SQLAlchemyimport pymysqlapp = Flask(__name__)app.config["SECRET_KEY"] = "hard to guess"app.config["SQLALCHEMY_DATABASE_URI"] = "mysql+pymysql://root:123456@localhost:3306/test"app.config["SQLALCHEMY_COMMIT_ON_TEARDOWN"] = Trueapp.config["SQLALCHEMY_TRACK_MODIFICATIONS"] = Truedb = SQLAlchemy(app)
2.定义模型
模型:程序使用的持久化实体。模型一般是一个Python类,类中的属性对应数据库中的列。
如:数据库test有两个表:role和users
role表中有两个属性,分别是id 和 name,它存储的是可用的用户角色。
users表中有四个属性,分别为:id username password role_id,其中role_id为外键,关联到role表中。它存储的是用户信息。
hello.py中定义模型:
class Role(db.Model): __tablename__ = "role" id = db.Column(db.Integer, primary_key=True) name = db.Column(db.String(100)) def __repr__(self): return '<Role %r>' % self.name users = db.relationship('User', backref="role")class User(db.Model): __tablename__ = "users" id = db.Column(db.Integer, primary_key=True) username = db.Column(db.String(100)) def __repr__(self): return '<User %r>' % self.username role_id = db.Column(db.Integer, db.ForeignKey('role.id'))
__table__name变量指的是数据库中使用的表名。
3.关系
users = db.relationship('User', backref="role") 和 role_id = db.Column(db.Integer, db.ForeignKey('role.id'))这两个语句说明了这两个表的关系。
db.relationship()中backref参数向User模型中添加一个role属性,从而定义反向关系。这一属性可替代role_id访问Role模型,此时获取的是模型对象,而不是外键的值。
大多数情况下,db.relationship()都能自行找到关系中的外键,若无法决定外键,我们就要自己为它提供额外参数来确定所使用的外键。
0 0
- Flask使用mysql数据库
- flask扩展模块flask-sqlachemy 的使用---mysql数据库
- flask扩展模块flask-sqlachemy 的使用---mysql数据库
- flask扩展模块flask-sqlachemy 的使用---mysql数据库
- Python-Flask数据库的使用(MySQL)
- Flask连MySQL数据库
- flask 配置mysql数据库
- Python进阶(五十二)-Flask使用pymysql连接MySQL数据库
- Flask--使用普通的方法连接MySQL数据库(不使用ORM)
- python的flask框架mysql数据库迁移
- Python Flask 中用 SQLAlchemy 访问 Mysql 数据库
- flask win10环境下配置 mysql 数据库
- python的flask框架连接mysql数据库
- Flask中使用Mysql的几点记录 / flask-sqlalchemy
- 使用 Flask-Migrate 实现数据库迁移
- Flask 数据库
- flask-数据库
- python的flask框架mysql数据库迁移 (二)
- URAL1998-The old Padawan
- 使用IPtables 实现数据转发
- Ubuntu系统正常使用的搜狗输入法突然无法输出中文
- Scala实现神经网络 ANN , 偏函数式风格
- Unix格式文件转Dos
- Flask使用mysql数据库
- 理解ClassLoader
- 数组名的本质
- 相对定位与绝对定位
- Leet Code 143:Reorder List 对一个链表重新排序
- 进度条加载过程中变长
- Qt5.8+vs2013集成(64位)
- Android Intend FLAG用法整理
- ocata版本vxlan模式配置【ovs】