使用 Flask 3 搭建问答平台(一):项目结构搭建

一、项目基本结构

二、app.py

from flask import Flask
import config
from exts import db
from models import UserModel
from blueprints.qa import bp as qa_bp
from blueprints.auth import bp as auth_bp# 创建一个Flask应用实例,__name__参数帮助Flask确定应用程序的根目录,以便于找到资源文件。
app = Flask(__name__)
# 从一个配置对象加载配置参数。config可以是一个配置类或模块,包含应用程序的各种配置设置,例如数据库URI、调试模式等
app.config.from_object(config)
# 使用之前创建的SQLAlchemy实例(db),并将其与Flask应用实例绑定。这样,数据库操作可以在Flask应用的上下文中进行
db.init_app(app)
# 将名为qa_bp的蓝图注册到Flask应用中,并为其指定URL前缀/qa。这样,蓝图中的所有路由都会以/qa为前缀
app.register_blueprint(qa_bp, url_prefix='/qa')
# 将名为auth_bp的蓝图注册到Flask应用中,并为其指定URL前缀/auth。这样,蓝图中的所有路由都会以/auth为前缀
app.register_blueprint(auth_bp, url_prefix='/auth')@app.route('/')
def hello_world():  # put application's code herereturn 'Hello World!'if __name__ == '__main__':app.run()

三、exts.py

# 这个文件存在是为了解决循环引用的问题
from flask_sqlalchemy import SQLAlchemy# 通过调用SQLAlchemy(),创建一个SQLAlchemy的实例。在这个实例上可以配置和管理数据库连接、定义数据库模型、执行查询等
db = SQLAlchemy()

四、models.py

from exts import dbclass UserModel(db.Model):pass

五、auth.py

from flask import Blueprint# 创建一个蓝图
# bp是一个Blueprint实例。
# 'auth'是蓝图的名称,通常用来标识这个蓝图的用途或功能区域。
# __name__是蓝图所在模块的名称,Flask用它来确定蓝图的位置。
# url_prefix='/auth'指定了这个蓝图的URL前缀。所有由这个蓝图注册的路由都会以这个前缀开头。
bp = Blueprint('auth', __name__, url_prefix='/auth')# /auth/login
@bp.route('/login', methods=['GET'])
def login():pass

六、qa.py

from flask import Blueprint# 创建一个蓝图
# bp是一个Blueprint实例。
# 'qa'是蓝图的名称,通常用来标识这个蓝图的用途或功能区域。
# __name__是蓝图所在模块的名称,Flask用它来确定蓝图的位置。
# url_prefix='/'指定了这个蓝图的URL前缀。所有由这个蓝图注册的路由都会以这个前缀开头。
bp = Blueprint('qa', __name__, url_prefix='/')# http://127.0.0.1:5000
@bp.route('/', methods=['GET'])
def index():pass

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://xiahunao.cn/news/3246595.html

如若内容造成侵权/违法违规/事实不符,请联系瞎胡闹网进行投诉反馈,一经查实,立即删除!

相关文章

聊一聊前后端权限控制 RBAC(完整流程)

介绍 RBAC(Role-Based Access Control)模型也就是基于角色的权限控制。 权限会分配到角色中,角色再分配给用户,这样用户就根据角色有了不同的权限。 当然,你可以说把权限直接挂载到用户上,这样不是更直接…

专业软件测评机构揭秘:移动app安全测试要点和注意事项

随着移动应用的普及和用户对信息安全的重视,任何一个缺乏安全性保障的应用程序都可能会被用户所抛弃。只有通过全面的安全测试,才能保证应用程序的安全性,增加用户的粘性和忠诚度,移动app安全测试是指对移动应用程序进行安全性评估…

【D3.js in Action 3 精译_015】1.3 D3 视角下的数据可视化最佳实践(下)

当前内容所在位置 第一部分 D3.js 基础知识 第一章 D3.js 简介 ✔️ 1.1 何为 D3.js?1.2 D3 生态系统——入门须知 1.2.1 HTML 与 DOM1.2.2 SVG - 可缩放矢量图形1.2.3 Canvas 与 WebGL1.2.4 CSS1.2.5 JavaScript1.2.6 Node 与 JavaScript 框架1.2.7 Observable 记事…

百川智能,摘下“大模型皇冠上的明珠”?

随着AI产业化和产业AI化成为业界共识,大模型的“新赛季”来了。 2024年是国产大模型全面商业化的元年,各地人工智能产业发展的政策密集出台。同时,在2024世界人工智能大会(WAIC 2024)上,各大AI厂商纷纷表示…

【Linux】基础I/O——FILE,用户缓冲区

1.FILE里的fd FILE是C语言定义的文件结构体,里面包含了各种文件信息。可以肯定的一点是,FILE结构体内一定封装了 fd 。为什么?来看接下来的思路分析: 1.使用系统接口的必然性   文件存储在磁盘上,属于外设。谁有权限访问…

【AI绘画教程】Stable Diffusion 1.5 vs 2

在本文中,我们将总结稳定扩散 1 与稳定扩散 2 辩论中的所有要点。我们将在第一部分中查看这些差异存在的实际原因,但如果您想直接了解实际差异,您可以跳下否定提示部分。让我们开始吧! Stable Diffusion 2.1 发布与1.5相比,2.1旨在解决2.0的许多相对缺点。本文的内容与理解…

<Rust><GUI>rust语言GUI库tauri体验:前、后端结合创建一个窗口并修改其样式

前言 本文是rust语言下的GUI库:tauri来创建一个窗口的简单演示,主要说明一下,使用tauri这个库如何创建GUI以及如何添加部件、如何编写逻辑、如何修改风格等,所以,这也是一个专栏,将包括tauri库的多个方面。…

filebeat生产环境配置

配置文件属性 生产配置 filebeat.inputs: - type: logenabled: truepaths: - /tmp/logs/*.log- /var/log/system.log- /var/log/wifi.logsymlinks: truejson.keys_under_root: truejson.message_key: xxxjson.add_error_key: true# 如果想卡部分日志,比如用时间作…

开源大语言模型完整列表概览

Large Language Model (LLM) 即大规模语言模型,是一种基于深度学习的自然语言处理模型,它能够学习到自然语言的语法和语义,从而可以生成人类可读的文本。 所谓"语言模型",就是只用来处理语言文字(或者符号体…

R语言优雅的把数据基线表(表一)导出到word

基线表(Baseline Table)是医学研究中常用的一种数据表格,用于在研究开始时呈现参与者的初始特征和状态。这些特征通常包括人口统计学数据、健康状况和疾病史、临床指标、实验室检测、生活方式、社会经济等。 本人在既往文章《scitb包1.6版本发…

不想填邀请码?Xinstall来帮你,一键安装无忧愁

在这个快节奏的时代,每一个点击都承载着用户的期待与耐心。然而,在下载App的过程中,繁琐的邀请码填写往往成为了用户体验的一大障碍。你是否也曾经因为不愿填写邀请码而放弃了一款心仪的App?今天,就让我们一起走进Xins…

【Unity美术】如何通用3Dmaxs做一个宝箱

👨‍💻个人主页:元宇宙-秩沅 👨‍💻 hallo 欢迎 点赞👍 收藏⭐ 留言📝 加关注✅! 👨‍💻 本文由 秩沅 原创 👨‍💻 专栏交流🧧&…

VsCode远程ssh连接失败:Could not establish connection to XXX

一、问题描述 在VsCode中按下"F1",选择Remote-SSH:Connect to Host 选择一个已经配置好的SSH主机,比如我选择的是192.168.0.104: 结果提示:Could not establish connection to XXX 二、解决方法 观察VsCode的输出信息…

关于山东省首版次中检测报告的要求是什么

关于山东省首版次高端软件申报中的检测报告要求,虽然搜索结果中没有直接提供详细的具体要求,但可以结合一般软件检测报告的标准和要求,以及首版次软件申报的一般流程,推测可能涉及以下几个方面: 1. **检测机构资质**&…

有关电力电子技术的一些相关仿真和分析:⑦三相桥式电压型PWM逆变器与直接/间接法控制单相全桥结构PWM整流器(MATLAB/Siumlink仿真)

1.1 题目一要求 以三相桥式电压型PWM逆变器为对象,研究其在不同调制度下,输出电压的频谱成分变化,依据仿真波形分析其工作时序。 参数要求:三相桥式逆变电路,直流侧电压800V,调制波频率50HZ,开关频率10kHZ,阻感负载R=10Ω,L=5mH。 1.2 题目二要求 以单相全桥结构P…

数据结构之链表操作详解与示例(反转链表,合并链表,旋转链表,对链表排序)

文章目录 1. 反转链表2. 合并链表3. 旋转链表4. 对链表排序总结 链表是一种常见的基础数据结构,它在内存中的存储方式非常灵活。本文将详细介绍反转链表、合并链表、旋转链表以及对链表排序这四种操作,并提供C和C的实现示例。 1. 反转链表 反转链表意味…

可以用EasyConnect连接实验室内网,但无法连接内网才能访问的服务器,为什么?

🏆本文收录于《CSDN问答解答》专栏,主要记录项目实战过程中的Bug之前因后果及提供真实有效的解决方案,希望能够助你一臂之力,帮你早日登顶实现财富自由🚀;同时,欢迎大家关注&&收藏&…

自动化产线 搭配数据采集监控平台 创新与突破

自动化产线在现在的各行各业中应用广泛,已经是现在的生产趋势,不同的自动化生产设备充斥在各行各业中,自动化的设备会产生很多的数据,这些数据如何更科学化的管理,更优质的利用,就需要数据采集监控平台来完…

昇思25天学习打卡营第04天|数据变换 Transforms

一、什么是数据变换 Transforms ? 通常情况下,直接加载的原始数据并不能直接送入神经网络进行训练,此时我们需要对其进行数据预处理。MindSpore提供不同种类的数据变换(Transforms),配合数据处理Pipeline来…

Docker存储目录问题,如何修改Docker默认存储位置?(Docker存储路径、Docker存储空间)etc/docker/daemon.json

文章目录 如何更改docker默认存储路径?版本1(没测试)版本2(可行)1. 停止 Docker 服务:2. 创建新的存储目录:3. 修改 Docker 配置文件:4. 移动现有的 Docker 数据:5. 重新…