很久没更新了,小编去处理其他作业了QAQ,不过不影响,续命续命。
这次来整理与数据库交互的板块,这里我们选用mysql,这也是比较主流的数据库了,小编也相对熟悉一些,python与mysql交互需要一些诸如mysqldb或者pymysql的模块,我学习的时候在mac下安装python-mysql折腾了好一阵,后来才知道原来这个模块有版本支持,py2是支持的,但是3一般都用的pymysql了,回想起以前学习Django的时候安装mysqldb也是一把辛酸泪。
安装
- Mac
mac的py2下安装mysql-python比较简单,直接pip install mysql-python
- Windows
windows可能就比较麻烦,直接pip 肯定会失败,可以先去这里下载对应版本的whl文件,然后pip 安装下载好的文件即可,pip install 文件名(带路径),直接在当前文件目录下执行就行,简单点。
- py3安装
py3安装pymysql直接pip install pymysql即可
Flsak-SQLAlchemy
常见情况下对于只有一个 Flask 应用,所有您需要做的事情就是创建 Flask 应用,选择加载配置接着创建 SQLAlchemy
对象时候把 Flask 应用传递给它作为参数。
使用Flask-SQLAlchemy创建模型与表的映射
- 模型需要继承自db.Model,然后需要映射到表中的属性,必须写成db.Column的数据类型
- 指定表名字:
__tablename__ = 'article'
- 数据类型:
- db.Integer -> 整型
- db.String -> varchar,需要指定最长长度
- db.Test -> text
- 其他参数
- primary_key -> 主键
- autoincrement -> 自增长
- nullable -> 是否允许为空,默认为空,若不允许可将之设置为False
- 调用db.create_all将模型创建至数据库中
数据库配置
这里有点类似于java里面的JDBC,配置项前面讲过可以单独写在配置文件里,然后在主文件里引用,增加可读性
config.py
SQLALCHEMY_DATABASE_URI ='mysql+pymysql://root:299521@127.0.0.1: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)
image.png数据库中可以查看到新建表的变化(数据库需要提前建立好哦这里)
网友评论