定义了一个User模型类,其中包含所需字段:

  1. username: 用户名,String(80)类型,最大长度80个字符,必须唯一且不能为空
  2. password: 密码,String(128)类型,存储加密后的密码,不能为空
  3. email: 邮箱,String(120)类型,最大长度120个字符,必须唯一且不能为空
  4. phone: 电话,String(20)类型,最大长度20个字符,不能为空
  5. address: 地址,String(200)类型,最大长度200个字符
  6. registration_date: 注册日期,DateTime类型,默认为当前时间
  7. gender: 性别,String(10)类型,最大长度10个字符
  8. birthday: 生日,Date类型
  9. 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

另外,安装过程中会或多或少遇到一些依赖缺少的问题,请自行搜索解决方法。