Flask:数据库的建模

  学习完模板系统,接下来要研究的就是框架对数据库的操作,不论python的那个框架,直接使用数据库API(redis、pymysql都可以进行操作,但是这些操作不够方便,于是就有了ORM

1、Flask-sqlalchemy

  关于Flask-sqlalchemy的相关配置可以参考配置 — Flask-SQLAlchemy 2.0 documentation

  SQLAlchemypython开源的一个ORM模块,类似的模块还有peewee,一些开发者将SQLAlchemy进行了针对Flask的封装,于是就有了Flask-sqlalchemy模块

  安装Flask-sqlalchemy,命令:

pip install Flask-sqlalchemy

   安装pymysql,命令:

pip install pymysql

 2、SQLAlchemy建模

import os
from flask import Flask
from flask import render_template
from flask_sqlalchemy import SQLAlchemy
import pymysql

pymysql.install_as_MySQLdb()

# 创建一个应用
app = Flask(__name__)

BASE_DIR = os.path.abspath(os.path.dirname(__file__))

# 链接数据库
app.config["SQLALCHEMY_DATABASE_URI"] = "mysql://root:123456@localhost/flaskdb"
# 请求结束之后自动提交
app.config["SQLALCHEMY_COMMIT_ON_TEARDOWN"] = True
# 跟踪修改
app.config["SQLALCHEMY_TRACK_MODIFICATIONS"] = True

models = SQLAlchemy(app)


class Test(models.Model):
    __tablename__ = "test"
    id = models.Column(models.Integer, primary_key=True)
    name = models.Column(models.String(32))
    time = models.Column(models.Date)


@app.route("/index/", methods=["GET", "POST"])
def index():
    name = "index"
    return render_template("index.html", **locals())


if __name__ == '__main__':
    models.create_all()  # 同步数据库
    app.run(host="127.0.0.1", port=8000, debug=True)

  上面代码链接的是mysql数据库,一般会报以下警告:

解决方案:

  导入模块mysql-connector,命令:

pip install mysql-connector

  修改链接数据库部分的代码:

app.config["SQLALCHEMY_DATABASE_URI"] = "mysql+mysqlconnector://root:123456@localhost/flaskdb"

  至此,警告问题解决

猜你喜欢

转载自www.cnblogs.com/xmcwm/p/11795555.html