Python进阶(五十二)-Flask使用pymysql连接MySQL数据库 - Go语言中文社区

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


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

  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

附 电子书福利(免积分下载)

Flask Web开发:基于Python的Web应用开发实战

Learning Python, 5th Edition

这里写图片描述
这里写图片描述
这里写图片描述

版权声明:本文来源CSDN,感谢博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明。
原文链接:https://blog.csdn.net/sunhuaqiang1/article/details/72821423
站方申明:本站部分内容来自社区用户分享,若涉及侵权,请联系站方删除。
  • 发表于 2020-03-08 11:05:06
  • 阅读 ( 1684 )
  • 分类:数据库

0 条评论

请先 登录 后评论

官方社群

GO教程

猜你喜欢