当前位置:网站首页>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>
边栏推荐
- 整理混乱的头文件,我用include what you use
- What are cache penetration, cache breakdown, and cache avalanche
- 矿产行业商业供应链协同系统解决方案:构建数智化供应链平台,保障矿产资源安全供应
- PyTorch深度学习快速入门教程
- PingCode 性能测试之负载测试实践
- C# 服务器日志模块
- 第十八届IET交直流輸電國際會議(ACDC2022)於線上成功舉辦
- 【HCIA持续更新】WLAN工作流程概述
- S2b2b solution for lighting industry: efficiently enable the industrial supply chain and improve the economic benefits of enterprises
- 第十八届IET交直流输电国际会议(ACDC2022)于线上成功举办
猜你喜欢

ble HCI 流控机制

Electronic pet dog - what is the internal structure?

leetcode:421. The maximum XOR value of two numbers in the array

一加10 Pro和iPhone 13怎么选?

CANN算子:利用迭代器高效实现Tensor数据切割分块处理

被PMP考试“折磨”出来的考试心得,值得你一览

To sort out messy header files, I use include what you use

Solution du système de gestion de la chaîne d'approvisionnement du parc logistique intelligent

kaili不能输入中文怎么办???

祝贺Artefact首席数据科学家张鹏飞先生荣获 Campaign Asia Tech MVP 2022
随机推荐
什么是低代码开发?
安信证券属于什么档次 开户安全吗
完美融入 Win11 风格,微软全新 OneDrive 客户端抢先看
Chow Tai Fook fulfills the "centenary commitment" and sincerely serves to promote green environmental protection
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
Learn more about the basic situation of 2022pmp examination
Solution of commercial supply chain coordination system in the mineral industry: build a digital intelligent supply chain platform to ensure the safe supply of mineral resources
NFT流动性市场安全问题频发—NFT交易平台Quixotic被黑事件分析
Summary of tx.origin security issues
动态规划股票问题对比
【Unity UGUI】ScrollRect 动态缩放格子大小,自动定位到中间的格子
Offline and open source version of notation -- comprehensive evaluation of note taking software anytype
Is it safe for Bank of China Securities to open an account online?
第十八届IET交直流输电国际会议(ACDC2022)于线上成功举办
解决el-input输入框.number数字输入问题,去掉type=“number“后面箭头问题也可以用这种方法代替
51 single chip microcomputer temperature alarm based on WiFi control
R language plot visualization: plot visualization of multiple variable violin plot in R with plot
Using win10 scheduling task program to automatically run jar package at fixed time
R语言plotly可视化:plotly可视化互相重叠的直方图(historgram)、并在直方图的顶部边缘使用geom_rug函数添加边缘轴须图Marginal rug plots
Spark 中的 Rebalance 操作以及与Repartition操作的区别