当前位置:网站首页>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>
边栏推荐
- 中银证券网上开户安全吗?
- NFT流动性市场安全问题频发—NFT交易平台Quixotic被黑事件分析
- tp配置多数据库
- TP configuring multiple databases
- PyTorch深度学习快速入门教程
- 整理混乱的头文件,我用include what you use
- 完美融入 Win11 风格,微软全新 OneDrive 客户端抢先看
- Is it safe for Great Wall Securities to open an account? How to open a securities account
- 昆明三环闭合工程将经过这些地方,有在你家附近的吗?
- [glide] cache implementation - memory and disk cache
猜你喜欢

码农版隐秘的角落:作为开发者最讨厌的5件

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

智慧物流園區供應鏈管理系統解决方案:數智化供應鏈賦能物流運輸行業供應鏈新模式

Implementation of super large-scale warehouse clusters in large commercial banks

MVC模式和三层架构

Congratulations to Mr. Zhang Pengfei, chief data scientist of artefact, for winning the campaign Asia tech MVP 2022

整理混乱的头文件,我用include what you use

Solution of dealer collaboration system in building materials industry: empowering enterprises to build core competitiveness

利用win10计划任务程序定时自动运行jar包

The company needs to be monitored. How do ZABBIX and Prometheus choose? That's the right choice!
随机推荐
Load test practice of pingcode performance test
Zhijieyun - meta universe comprehensive solution service provider
R language plot visualization: plot visualization of multiple variable violin plot in R with plot
Datakit -- the real unified observability agent
【HCIA持续更新】WLAN概述与基本概念
Which domestic cloud management platform manufacturer is good in 2022? Why?
Is it safe for Bank of China Securities to open an account online?
居家打工年入800多万,一共五份全职工作,他还有时间打游戏
To sort out messy header files, I use include what you use
防火墙基础透明模式部署和双机热备
CocosCreator事件派发使用
【Unity UGUI】ScrollRect 动态缩放格子大小,自动定位到中间的格子
How can programmers improve the speed of code writing?
智捷云——元宇宙综合解决方案服务商
雨量预警广播自动化数据平台BWII 型广播预警监测仪
7 RSA密码体制
【测试开发】软件测试——基础篇
【华为HCIA持续更新】SDN与FVC
Congratulations to Mr. Zhang Pengfei, chief data scientist of artefact, for winning the campaign Asia tech MVP 2022
leetcode:421. The maximum XOR value of two numbers in the array