flask-sqlalchemy 实现 模型(Model,即Class类)与数据库表(table)的映射

使用Flask-SQLAlchemy来实现模型(Modle,即Class)与表(table)的映射
1、模型需要继承db.Model;映射到表中的属性(每列),必须写成‘db.Column()’的数据类型
2、数据类型:
    *'db.Integer'---整型
    *'db.String'---varchar,需要指定最长的长度
    *'db.Text'----text
3、其他参数
    *'primary_key':字段设置为主键
    *'autoincrement':主键为自增长的
    *'nullable':是否可以为空,设置为False就代表不为空
4、最后需要调用db.create_all()来讲模型真正的创建到数据库中
例子如下:

config.py配置文件:

#encoding:utf-8

#dialect+driver://username:password@host:port/database
DIALECT = 'mysql'
DRIVER = 'mysqldb'
USERNAME = 'root'
PASSWORD = 'root'
HOST = '127.0.0.1'
PORT = '3306'
DATABASE = 'db_demo1'

#mysql 不会认识utf-8,而需要直接写成utf8
SQLALCHEMY_DATABASE_URI = "{}+{}://{}:{}@{}:{}/{}?charset=utf8".format(DIALECT,DRIVER,
                                                                        USERNAME,PASSWORD,HOST,PORT,DATABASE)
SQLALCHEMY_TRACK_MODIFICATIONS = False

app入口文件:

#encoding:utf-8

from flask import Flask
from  flask_sqlalchemy import SQLAlchemy
import config

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

# article表sql语句创建方式:
# create table article(
#     id int primary key  autoincrement ,
#     title varchar(100) not null
#     content text not null
# )

#用类来进行表的映射,一个类就是一个表,一个实例就是一条数据,一个变量属性就是一个字段
class article(db.Model):  #一定要继承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()  #真正将Class与表进行映射
@app.route('/')
def index():
    return 'index'


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






猜你喜欢

转载自blog.csdn.net/qq_39974381/article/details/80853723