当前位置:网站首页>Flask 轻量web框架
Flask 轻量web框架
2022-07-04 15:43:00 【Wu_Candy】
【前置条件:你已经在windows下搭建好了Pycharm集成开发工具+python3.6的版本及相关的第三方包】
Step1:直接上框架全图
Step2:框架的结构说明
项目结构
- manage.py 用来控制程序的 python manage.py runserver #启动服务命令 python manage.py shell #进入shell脚本模式命令 - app/__init__ 初始化文件 初始化整个Flask对象,以及Flask所用的各种插件,并返回一个app应用 - app/settings 项目配置文件 配置整个项目运行环境 - app/ext 项目的扩展库 第三方扩展库打包处理 - app/views 视图函数 处理业务逻辑 协调模块和模型之间的关系 - app/models 模型 定义模型结构 获得数据库中的表的关系映射 db.create_all() 创建数据库 db.drop_all() 删除数据库 - doc 框架说明文档 - static 用于存放静态资源的目录 - templates 用于存放模板资源的目录 - migrations 迁移目录
数据迁移
- 将模型映射到数据库 - 使用flask-migrate库 - 安装与使用 pip install flask-migrate 初始化,需要使用app和db进行初始化,migrate=Migrate(app,db) 配置flask-script 的命令 manager.add_command('db',MigrateCommand)
- 指令使用 python manage.py db init init 初始化指令,仅可调用一次 python manage.py db migrate migrate指令用于生成迁移文件 内部迁移文件使用了链表来关联关系 --message MSG 对迁移添加日志说明 python manage.py db upgrade upgrade指令用于执行迁移文件 数据库内容升级 python manage.py db downgrade downgrade指令用于执行迁移文件 数据库内容降级,相当于后悔药
- help 帮助文档
Step3:大概的调用逻辑如下说明
<1> App/views.py 文件引入了models.py【模型包中的模型对象】andext.py【拓展包中的db 对象】
<2> App/__init__.py 文件引入了views.py【视图包里面的蓝图】,ext.py【引入拓展包并在拓展包中做初始化工作】,settings.py【引入设置包并做数据库连接和环境配置及资源目录的设置工作】。最后初始化完成app 应用后,返回一个app应用。
<3> manage.py 是入口文件,拿到上一步骤中返回的app应用,最后就是启动服务。
Step4:服务启动后访问首页效果是
Step5:针对上图看看路由与页面的源码
其实是去渲染Templates/home.html页面
App/views.py:
@blue.route('/index/',methods=['GET','POST']) def index(): return render_template('home.html')
页面主要是登录与退出的两个链接
Templates/home.html 页面源码为:
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> </head> <body> <h2>welcome back:{{ username }}</h2> <a href="{{ url_for('second_blue.login') }}">login</a> <a href="{{ url_for('second_blue.logout') }}">logout</a> </body> <html>
边栏推荐
- [template] [Luogu p4630] duathlon Triathlon (round square tree)
- 网页游戏引擎
- 金额计算用 BigDecimal 就万无一失了?看看这五个坑吧~~
- 智慧物流園區供應鏈管理系統解决方案:數智化供應鏈賦能物流運輸行業供應鏈新模式
- Offline and open source version of notation -- comprehensive evaluation of note taking software anytype
- wuzhicms代码审计
- Yanwen logistics plans to be listed on Shenzhen Stock Exchange: it is mainly engaged in international express business, and its gross profit margin is far lower than the industry level
- PingCode 性能测试之负载测试实践
- 完美融入 Win11 风格,微软全新 OneDrive 客户端抢先看
- 利用win10计划任务程序定时自动运行jar包
猜你喜欢
建筑建材行业经销商协同系统解决方案:赋能企业构建核心竞争力
一文掌握数仓中auto analyze的使用
【HCIA持续更新】网络管理与运维
【Go ~ 0到1 】 第六天 文件的读写与创建
解决el-input输入框.number数字输入问题,去掉type=“number“后面箭头问题也可以用这种方法代替
新的职业已经出现,怎么能够停滞不前 ,人社部公布建筑新职业
Ble HCI flow control mechanism
Firewall basic transparent mode deployment and dual machine hot standby
【HCIA持续更新】WLAN工作流程概述
如何实现一个延时队列 ?
随机推荐
Embedded software architecture design - function call
The 18th IET AC / DC transmission International Conference (acdc2022) was successfully held online
智慧物流園區供應鏈管理系統解决方案:數智化供應鏈賦能物流運輸行業供應鏈新模式
"Cannot initialize Photoshop because the temporary storage disk is full" graphic solution
【云原生】服务网格是什么“格”?
egg. JS learning notes
What grade does Anxin securities belong to? Is it safe to open an account
Display opencv drawn pictures on MFC picture control control
矿产行业商业供应链协同系统解决方案:构建数智化供应链平台,保障矿产资源安全供应
Solution du système de gestion de la chaîne d'approvisionnement du parc logistique intelligent
R language plot visualization: plot visualization of multiple variable violin plot in R with plot
一文掌握数仓中auto analyze的使用
CANN算子:利用迭代器高效实现Tensor数据切割分块处理
整理混乱的头文件,我用include what you use
周大福践行「百周年承诺」,真诚服务推动绿色环保
Offline and open source version of notation -- comprehensive evaluation of note taking software anytype
51 single chip microcomputer temperature alarm based on WiFi control
Solution of dealer collaboration system in building materials industry: empowering enterprises to build core competitiveness
2022年国内云管平台厂商哪家好?为什么?
完美融入 Win11 风格,微软全新 OneDrive 客户端抢先看