Flask
基本平台搭建 QA(项目名称)
blueprint
auth.py(作者蓝图,关于作者的视图)
qa.py(问答蓝图)
static(静态文件)
template(网页模板)
app.py(主程序)
config.py(数据配置文件,防止相互引用)
exts.py(扩展)
models.py(模型文件)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 app.py from flask import Flaskimport configfrom exts import dbfrom models import UserModelfrom blueprints.qa import bp as qa_bpfrom blueprints.auth import bp as auth_bpapp = Flask(__name__) app.config.from_object(config) db.init_app(app) app.register_blueprint(qa_bp) app.register_blueprint(auth_bp) @app.route("/" ) def hell (): return "hello" if __name__ == "__main" : app.run()
1 2 3 4 5 6 7 8 9 10 qa.py from flask import Blueprintbp = Blueprint("qa" ,__name__,url_prefix="/" ) @bp.route("/" ) def index (): pass
1 2 3 4 5 6 7 8 9 10 auth.py from flask import Blueprintbp = Blueprint("auth" ,__name__,url_prefix="/auth" ) @bp.route("/login" ) def login (): pass
1 2 3 4 5 6 7 modeles.py from exts import dbclass UserModel (db.model): pass
1 2 3 4 5 6 exts.py # 扩展插件 from flask_sqlalchemy import SQLAlchemy db = SQLAlchemy()
User模型创建 现在models中设置好
1 2 3 4 5 6 7 8 9 10 11 12 models.py from exts import dbfrom datetime import datetimeclass UserModel (db.Model): __tablename__ = "user" id = db.Column(db.Integer,primary_key = True ,autoincrement=True ) username = db.Column(db.String(100 ),nullable = False ) password = db.Column(db.String(100 ), nullable=False ) email = db.Column(db.String(100 ), nullable=False ,unique = True ) join_time = db.Column(db.DateTime,default = datetime.now)
在config.py中设置好数据库连接信息
1 2 3 4 5 6 7 8 9 10 11 12 13 HOSTNAME = "127.0.0.1" PORT = "3306" USERNAME = "root" PASSWORD = "1111" DATABASE = "qa" DB_URI = "mysql+pymysql://{}:{}@{}:{}/{}?charset=utf8mb4" .format (USERNAME,PASSWORD,HOSTNAME,PORT,DATABASE) SQLALCHEMY_DATABASE_URI = DB_URI
然后在app.py中操作flask_migrate连接和更新数据库
网页文件和静态文件准备 注册功能 邮箱验证功能 安装flask邮箱支持
表单验证