from flask import Flask, url_for, request, redirect, render_template from flask_sqlalchemy import SQLAlchemy app = Flask(__name__) # 设置数据库连接地址 DB_URI = 'mysql+pymysql://root:[email protected]:3306/web' app.config['SQLALCHEMY_DATABASE_URI'] = DB_URI # 是否追踪数据库修改,一般不开启, 会影响性能 app.config['SQLALCHEMY_TRACK_MODIFICATIONS'] = False # 是否显示底层执行的SQL语句 app.config['SQLALCHEMY_ECHO'] = True # 初始化db,关联flask 项目 db = SQLAlchemy(app) # 创建模型 class Students(db.Model): __tablename__ = 'students' # 数据库表名 id = db.Column(db.Integer, primary_key=True) name = db.Column(db.String(20)) fullname = db.Column(db.String(30)) nickname = db.Column(db.String(30)) def __repr__(self): return "<Students(name='%s', fullname='%s', nickname='%s')>" % ( self.name, self.fullname, self.nickname) if __name__ == '__main__': # 创建表 db.create_all() app.run(debug=True)
# 删除所有表 db.drop_all() # 创建所有表 db.create_all()
常用字段
sqlalchemy常用数据类型:
参数 |
类型 |
---|---|
String |
字符类型,使用时需要指定长度,区别于Text类型 |
Text |
文本类型 |
LONGTEXT |
长文本类型 |
Integer |
整形 |
Float |
浮点类型 |
Boolean |
传递True/False |
Decimal |
具有小数点而且数值确定的数值 |
Enum |
枚举类型 |
DateTime |
日期时间类型 |
Date |
传递datetime.date()进去 |
Time |
传递datatime.time() |
针对字段的一些参数设置
参数 |
说明 |
---|---|
primary_key |
是否为主键 |
autoincrement |
是否自动增长 |
unique |
是否唯一 |
default |
默认值 |
nullable |
是否允许为空 |
onupdate |
更新的时候执行的函数 |
name |
该属性在数据库中的字段映射 |
index |
是否创建索引,提高查询效率 |