Python进阶(五十二)-Flask使用pymysql连接MySQL数据库

举报
SHQ5785 发表于 2020/12/30 01:13:10 2020/12/30
【摘要】 #Python进阶(五十二)-Flask使用pymysql连接MySQL数据库 ##IDE说明 Python:3.5 Flask:0.12.1 Pymysql:0.7.10 MySQL:5.5 ##前言   之前在做Python Web开发时,选择的是Django框架,后台的自动化实现着实十分方便。相关博文参见《Python进阶(三十六)-Web框...

#Python进阶(五十二)-Flask使用pymysql连接MySQL数据库
##IDE说明

  • 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

  
 
  • 1

  Flask拥有丰富的扩展组件,数据库管理方面Flask-SQLAlchemy简化了数据库管理的操作。SQLAlchemy是一个很强大的关系型数据库框架,支持多种数据库后台。其不但提供了高层ORM,而且也提供了使用数据库原生SQL的底层功能。和其他大多数扩展一样,Flask-SQLAlchemy也使用pip安装:

pip install flask-sqlalchemy

  
 
  • 1

##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

  
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30

  之前在配置数据库URL时,语句为:

app.config['SQLALCHEMY_DATABASE_URI'] = 
'mysql://lmapp:lmapp@localhost/smp'

  
 
  • 1
  • 2

  在创建表时出现‘ImportError: No module named MySQLdb’错误提示。经过一番搜索,发现将配置语句改为

app.config['SQLALCHEMY_DATABASE_URI'] = 
'mysql+pymysql://lmapp:lmapp@localhost/smp'

  
 
  • 1
  • 2

就可以了。
##附
自动生成依赖包信息

pip freeze>Requirements.txt

  
 
  • 1

安装依赖包

pip install -r Requirements.txt

  
 
  • 1

##附 电子书福利(免积分下载)
Flask Web开发:基于Python的Web应用开发实战

Learning Python, 5th Edition

![这里写图片描述](https://img-blog.csdnimg.cn/img_convert/e415b30dbbbc5ab4a2c1175b0e899fa7.png)
![这里写图片描述](https://img-blog.csdnimg.cn/img_convert/5ea7f92a4b50d8465587c45e4b34108a.png)
![这里写图片描述](https://img-blog.csdnimg.cn/img_convert/f26b6c802951d54cd92c22204011ed16.png)

文章来源: shq5785.blog.csdn.net,作者:No Silver Bullet,版权归原作者所有,如需转载,请联系作者。

原文链接:shq5785.blog.csdn.net/article/details/72821423

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。