导航条实现
项目导航
【python】Flask网页开发——论坛项目实战(完整代码)
【python】Flask网页开发——论坛项目实战(1.导航条实现)
【python】Flask网页开发——论坛项目实战(2.登录与注册)
【python】Flask网页开发——论坛项目实战(3.问答模块)
导航条实现
路由和视图函数
user.py
from flask import Blueprint
bp = Blueprint("user", __name__, url_prefix="/user")
@bp.route("/login")
def login():
return "登录"
qa.py
from flask import Blueprint,render_template
bp = Blueprint("qa", __name__, url_prefix="/")
@bp.route("/")
def index():
return render_template("index.html")
ORM模型
models.py
from exts import db
from datetime import datetime
class 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)
ORM模型迁移
1.初始化迁移环境:flask db init
2.生成迁移脚本:flask db migrate -m “备注信息”
3.执行迁移脚本:flask db upgrade
执行完后,项目中生成文件夹migrations
静态文件
static——>bootstrap——>bootstrap@4.6.min.css
Bootstrap中文文档:v4.bootcss.com/docs/gettin…
将此链接的内容全部复制,cdn.jsdelivr.net/npm/bootstr…,粘贴到bootstrap@4.6.min.css
app.py
from flask import Flask
import config
from exts import db
from models.models import UserModel
from flask_migrate import Migrate
from blueprints import qa_bp,user_bp
app = Flask(__name__)
app.config.from_object(config)
db.init_app(app)
app.register_blueprint(qa_bp)
app.register_blueprint(user_bp)
migrate = Migrate(app, db)
if __name__ == '__main__':
app.run(debug=True)
config.py
# MySQL所在的主机名
HOSTNAME = "127.0.0.1"
# MySQL监听的端口号,默认3306
PORT = 3306
# 连接MySQL的用户名
USERNAME = "root"
# 连接MySQL的密码
PASSWORD = "root"
# MySQL上创建的数据库名称
DATABASE = "python_bbs"
DB_URL = f"mysql+pymysql://{USERNAME}:{PASSWORD}@{HOSTNAME}:{PORT}/{DATABASE}?charset=utf8mb4"
SQLALCHEMY_DATABASE_URI = DB_URL
exts.py
from flask_sqlalchemy import SQLAlchemy
db = SQLAlchemy()