定义了一个User
模型类,其中包含所需字段:
username
: 用户名,String(80)
类型,最大长度80个字符,必须唯一且不能为空password
: 密码,String(128)
类型,存储加密后的密码,不能为空email
: 邮箱,String(120)
类型,最大长度120个字符,必须唯一且不能为空phone
: 电话,String(20)
类型,最大长度20个字符,不能为空address
: 地址,String(200)
类型,最大长度200个字符registration_date
: 注册日期,DateTime
类型,默认为当前时间gender
: 性别,String(10)
类型,最大长度10个字符birthday
: 生日,Date
类型avatar_url
: 头像地址,String(200)
类型,最大长度200个字符
代码如下:
from flask import Flask
from flask_sqlalchemy import SQLAlchemy
from datetime import datetime
app = Flask(__name__)
app.config[
'SQLALCHEMY_DATABASE_URI'] = 'mysql://username:password@hostname/database_name'
app.config['SQLALCHEMY_TRACK_MODIFICATIONS'] = False
db = SQLAlchemy(app)
class User(db.Model):
id = db.Column(db.Integer, primary_key=True)
username = db.Column(db.String(80), unique=True, nullable=False)
password = db.Column(db.String(128), nullable=False)
email = db.Column(db.String(120), unique=True, nullable=False)
phone = db.Column(db.String(20), nullable=False)
address = db.Column(db.String(200))
registration_date = db.Column(db.DateTime, default=datetime.utcnow)
gender = db.Column(db.String(10))
birthday = db.Column(db.Date)
avatar_url = db.Column(db.String(200))
def __repr__(self):
return '<User %r>' % self.username
if __name__ == '__main__':
with app.app_context():
db.create_all()
app.run(debug=True)
注意
执行代码前确认已经安装flask_sqlalchemy
$ pip install -U Flask-SQLAlchemy
确认已经安装MySQLdb
$ pip install mysql-python
另外,安装过程中会或多或少遇到一些依赖缺少的问题,请自行搜索解决方法。
评论区
发表新的留言
您可以留言提出您的疑问或建议。
您的留言得到回复时,会通过您填写的邮箱提醒您。