当前位置:网站首页>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>
边栏推荐
- Cann operator: using iterators to efficiently realize tensor data cutting and blocking processing
- 新的职业已经出现,怎么能够停滞不前 ,人社部公布建筑新职业
- 2022年国内云管平台厂商哪家好?为什么?
- Datakit -- the real unified observability agent
- To sort out messy header files, I use include what you use
- 一文掌握数仓中auto analyze的使用
- Spark 中的 Rebalance 操作以及与Repartition操作的区别
- 聊聊异步编程的 7 种实现方式
- Go micro tutorial - Chapter 2 go micro V3 using gin and etcd
- egg. JS learning notes
猜你喜欢
什么是低代码开发?
智慧物流园区供应链管理系统解决方案:数智化供应链赋能物流运输行业供应链新模式
电子元器件B2B商城系统开发:赋能企业构建进销存标准化流程实例
The company needs to be monitored. How do ZABBIX and Prometheus choose? That's the right choice!
完美融入 Win11 风格,微软全新 OneDrive 客户端抢先看
Which domestic cloud management platform manufacturer is good in 2022? Why?
51 single chip microcomputer temperature alarm based on WiFi control
利用win10计划任务程序定时自动运行jar包
La 18e Conférence internationale de l'IET sur le transport d'électricité en courant alternatif et en courant continu (acdc2022) s'est tenue avec succès en ligne.
With an annual income of more than 8 million, he has five full-time jobs. He still has time to play games
随机推荐
Leetcode list summary
Is it safe for Bank of China Securities to open an account online?
detectron2安装方法
Learn more about the basic situation of 2022pmp examination
Cocoscreator event dispatch use
世界环境日 | 周大福用心服务推动减碳环保
Cann operator: using iterators to efficiently realize tensor data cutting and blocking processing
容器环境minor gc异常频繁分析
Solution of dealer collaboration system in building materials industry: empowering enterprises to build core competitiveness
整理混乱的头文件,我用include what you use
OPPO小布推出预训练大模型OBERT,晋升KgCLUE榜首
Firewall basic transparent mode deployment and dual machine hot standby
World Environment Day | Chow Tai Fook serves wholeheartedly to promote carbon reduction and environmental protection
Web game engine
leetcode:421. 数组中两个数的最大异或值
NFT流动性市场安全问题频发—NFT交易平台Quixotic被黑事件分析
昆明三环闭合工程将经过这些地方,有在你家附近的吗?
安信证券手机版下载 网上开户安全吗
To sort out messy header files, I use include what you use
太方便了,钉钉上就可完成代码发布审批啦!