Flask使用pymysql连接MySQL数据库
【摘要】 一、前言Python:3.5Flask:0.12.1Pymysql:0.7.10MySQL:5.5之前在做Python Web开发时,选择的是Django框架,后台的自动化实现着实十分方便。相关博文参见《Python进阶(三十六)-Web框架Django项目搭建全过程》、《 Python进阶(二十三)-Django使用pymysql连接MySQL数据库做增删改查》。对于知识的渴求,驱使我尝...
一、前言
- Python:3.5
- Flask:0.12.1
- Pymysql:0.7.10
- MySQL:5.5
之前在做Python Web开发时,选择的是Django框架,后台的自动化实现着实十分方便。相关博文参见《Python进阶(三十六)-Web框架Django项目搭建全过程》、《 Python进阶(二十三)-Django使用pymysql连接MySQL数据库做增删改查》。对于知识的渴求,驱使我尝试使用Flask实现Web开发。
在利用Flask实现研究课题相关系统时,涉及到数据库相关操作。由于使用Python3开发语言,python3中已经不再支持MySQLdb模块,所以这里使用pymysql数据库连接组件,安装pymysql:
pip install pymysql
Flask拥有丰富的扩展组件,数据库管理方面Flask-SQLAlchemy简化了数据库管理的操作。SQLAlchemy是一个很强大的关系型数据库框架,支持多种数据库后台。其不但提供了高层ORM,而且也提供了使用数据库原生SQL的底层功能。和其他大多数扩展一样,Flask-SQLAlchemy也使用pip安装:
pip install flask-sqlalchemy
二、mysql连接配置
mysql连接配置代码如下:
from flask_sqlalchemy import SQLAlchemy
# 配置数据库连接
app.config['SQLALCHEMY_DATABASE_URI'] = 'mysql+pymysql://lmapp:lmapp@localhost/smp'
app.config['SQLALCHEMY_COMMIT_ON_TEARDOWN'] = True
app.config['SQLALCHEMY_TRACK_MODIFICATIONS'] = True
db = SQLAlchemy(app)
# 创建用户角色表
class Role(db.Model):
__tablename__ = 'role'
id = db.Column(db.Integer, primary_key=True)
name = db.Column(db.String(64), unique=True, nullable=True)
# 定义一对多关联关系
user = db.relationship('User', backref='role')
def __repr__(self):
return '<Role %r>' % self.name
# 创建用户表
class User(db.Model):
__tablename__ = 'user'
uid = db.Column(db.String(11), primary_key=True)
uname = db.Column(db.String(11), unique=True, nullable=True)
pwd = db.Column(db.String(11), nullable=True)
phone = db.Column(db.String(11), nullable=True)
regtime = db.Column(db.String(20), nullable=True)
stat = db.Column(db.String(1), nullable=True)
# 定义外键
role_id = db.Column(db.Integer, db.ForeignKey('role.id'))
def __repr__(self):
return '<User %r>' % self.uname
之前在配置数据库URL时,语句为:
app.config['SQLALCHEMY_DATABASE_URI'] =
'mysql://lmapp:lmapp@localhost/smp'
在创建表时出现‘ImportError: No module named MySQLdb
’错误提示。经过一番搜索,发现将配置语句改为
app.config['SQLALCHEMY_DATABASE_URI'] =
'mysql+pymysql://lmapp:lmapp@localhost/smp'
就可以了。
三、拓展阅读
自动生成依赖包信息
pip freeze>Requirements.txt
安装依赖包
pip install -r Requirements.txt
四、延伸阅读
【版权声明】本文为华为云社区用户原创内容,未经允许不得转载,如需转载请自行联系原作者进行授权。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
评论(0)