flask项目框架搭建

铁佛  论坛元老 | 2024-10-13 10:46:25 | 显示全部楼层 | 阅读模式
打印 上一主题 下一主题

主题 1823|帖子 1823|积分 5469

目录结构


blueprints

python包,蓝图文件,相当于路由组的概念,方便模块化开辟

比方auth.py文件
  1. from flask import Blueprint, render_template
  2. bp = Blueprint("auth", __name__, url_prefix="/auth")
  3. @bp.route("/login")
  4. def login():
  5.     pass
  6. @bp.route("/register")
  7. def register():
  8.     return render_template("register.html")
复制代码
假如想访问register.html页面
那么请求url就是:ip:port/auth/register
   app.py文件中必要进行初始化蓝图文件
  1. from flask import Flask
  2. from blueprints.qa import bp as qa_bp
  3. from blueprints.auth import bp as auth_bp
  4. app = Flask(__name__)
  5. app.register_blueprint(qa_bp)
  6. app.register_blueprint(auth_bp)
  7. if __name__ == '__main__':
  8.     app.run()
复制代码
migrations

数据库迁徙产生的包,此中包罗迁徙的脚本
由迁徙三部曲生成:
第一
  1. flask db init
复制代码
第二(辨认ORM模型的改变,生成迁徙脚本)
  1. flask db migrate
复制代码
第三(运行迁徙脚本,同步到数据库中)
  1. flask db upgrade
复制代码
static

存放静态文件的包,此中存放js,css,images等
templates

存放html文件
app.py

‌Flask的app.py文件是Flask框架中的焦点应用步伐类App的实现,包罗了Flask应用步伐的根本结构和焦点功能。‌该文件界说了Flask应用步伐的根本配置、路由注册、错误处理、请求相应处理以及扩展初始化等紧张功能‌。
具体来说,app.py文件的作用包罗以下几个方面:
‌配置管理‌:设置Flask应用步伐的根本配置,如开启debug模式、设置密钥等‌。
‌路由注册‌:通过装饰器和类方法注册路由,界说应用步伐的URL结构和处理函数‌。
‌错误处理‌:注册错误处理函数,界说当应用步伐发生错误时的处理逻辑‌。
‌请求/相应处理‌:实现请求和相应的处理方法,包罗路由函数、错误处理函数、视图方法等‌。
‌扩展初始化‌:初始化Flask扩展,如SQLAlchemy、Werkzeug、Jinja2等,以添加额外的功能和支持‌。
config.py

负责配置信息,比方数据库配置,邮件配置等
  1. # 配置数据库信息
  2. HOSTNAME = '127.0.0.1'
  3. PORT = 3306
  4. DATABASE = 'liu_oa'
  5. USERNAME = 'root'
  6. PASSWORD = 'xxxxxx'
  7. DB_URI = f'mysql+pymysql://{USERNAME}:{PASSWORD}@{HOSTNAME}:{PORT}/{DATABASE}?charset=utf8mb4'
  8. SQLALCHEMY_DATABASE_URI = DB_URI
复制代码
exts.py

‌Flask中的exts.py文件主要用于解决第三方库的循环引用问题。‌ exts.py文件通过会合管理第三方库的导入,避免了在主步伐和其他文件之间形成循环引用,从而简化了代码结构并提高了代码的可维护性‌。
具体来说,exts.py文件通常用于保存数据库和其他第三方库的初始化代码。由于数据库操作和其他第三方库的调用可能会在多个文件中进行,直接在这些文件中导入可能会导致循环引用的问题。通过将这部分代码会合放在exts.py文件中,可以有效地解决这个问题。
  1. # 这个文件的目的是为了解决循环引用
  2. from flask_sqlalchemy import SQLAlchemy
  3. from flask_mail import Mail
  4. db = SQLAlchemy()
  5. mail = Mail()
复制代码
models.py

负责模型的界说,和数据库表映射
  1. from exts import db
  2. from datetime import datetime
  3. class UserModel(db.Model):
  4.     __tablename__ = "user"
  5.     id = db.Column(db.Integer, primary_key=True, autoincrement=True)
  6.     username = db.Column(db.String(100), nullable=False)
  7.     password = db.Column(db.String(100), nullable=False)
  8.     email = db.Column(db.String(100), nullable=False, unique=True)
  9.     join_time = db.Column(db.DateTime, default=datetime.now)
复制代码
项目地址

https://gitee.com/yohoo-just-play/liu_oa/

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

铁佛

论坛元老
这个人很懒什么都没写!
快速回复 返回顶部 返回列表