Flask学习(二) - 数据库交互

   很久没更新了,小编去处理其他作业了QAQ,不过不影响,续命续命。
这次来整理与数据库交互的板块,这里我们选用mysql,这也是比较主流的数据库了,小编也相对熟悉一些,python与mysql交互需要一些诸如mysqldb或者pymysql的模块,我学习的时候在mac下安装python-mysql折腾了好一阵,后来才知道原来这个模块有版本支持,py2是支持的,但是3一般都用的pymysql了,回想起以前学习Django的时候安装mysqldb也是一把辛酸泪。

安装

  1. Mac

   mac的py2下安装mysql-python比较简单,直接pip install mysql-python

  1. Windows

   windows可能就比较麻烦,直接pip 肯定会失败,可以先去这里下载对应版本的whl文件,然后pip 安装下载好的文件即可,pip install 文件名(带路径),直接在当前文件目录下执行就行,简单点。

  1. py3安装

   py3安装pymysql直接pip install pymysql即可

Flsak-SQLAlchemy

   常见情况下对于只有一个 Flask 应用,所有您需要做的事情就是创建 Flask 应用,选择加载配置接着创建 SQLAlchemy 对象时候把 Flask 应用传递给它作为参数。
使用Flask-SQLAlchemy创建模型与表的映射

  1. 模型需要继承自db.Model,然后需要映射到表中的属性,必须写成db.Column的数据类型
  2. 指定表名字:
__tablename__ = 'article'
  1. 数据类型:
  • db.Integer -> 整型
  • db.String -> varchar,需要指定最长长度
  • db.Test -> text
  1. 其他参数
  • primary_key -> 主键
  • autoincrement -> 自增长
  • nullable -> 是否允许为空,默认为空,若不允许可将之设置为False
  1. 调用db.create_all将模型创建至数据库中

数据库配置

这里有点类似于java里面的JDBC,配置项前面讲过可以单独写在配置文件里,然后在主文件里引用,增加可读性

config.py

SQLALCHEMY_DATABASE_URI ='mysql+pymysql://root:[email protected]:3306/db_demo1'

SQLALCHEMY_TRACK_MODIFICATIONS = False

   小编用的是py3,所以就用py3+pymysql做演示了,py2使用配置

dialect + driver://username:password@host:port/database:

主文件:

from flask import Flask
from flask_sqlalchemy import SQLAlchemy
import config
import pymysql

app = Flask(__name__)
app.config.from_object(config)
db = SQLAlchemy(app)





class article(db.Model):
    __tablename__ = 'article'
    id = db.Column(db.Integer, primary_key=True, autoincrement=True)
    title = db.Column(db.String(100), nullable=False)
    content = db.Column(db.Text, nullable=False)


db.create_all()

@app.route('/')
def index():
    return 'index'



if __name__ == '__main__':
    app.run(debug=True)

数据库中可以查看到新建表的变化(数据库需要提前建立好哦这里)

7415868-4b8853ae74e92f9a.png
image.png

猜你喜欢

转载自blog.csdn.net/weixin_34366546/article/details/87230619