网站首页 > 技术文章 正文
学习如逆水行舟,不进则退,从2016年开始兜兜转转,2021年我又开始自学python网站开发了,毕竟python是最简单的编程语言,加上最近一年一直从事人工智能、机器学习领域,所以很想构建自己的python技术栈,这样自己既会网络安全业务理论,又会开发实战经验,满分~
曾经有一个人问我要不要创业,做web应用防火墙(WAF),说可以投资我,我因为没有一帮好朋友共同创业,而放弃了,毕竟现在小公司很难生存,加上没人愿意和你一起拼,而后就不了了之了,毕竟大家都要生活嘛,苦涩~
1、初始化
首先是安装 flask ,一行命令搞定~
然后是初始化,创建一个应用实例,客户端的所有请求,都是这个对象处理~
2、路由和视图函数
这个对象要知道对每个URL请求,需要调用什么样的处理函数,所以保存了一个URL到python函数的映射关系,称之为路由,路由函数就是视图函数,这个函数返回值叫做响应~
路由URL中放在尖括号的内容就是动态部分,任何能匹配静态部分的URL都会映射到这个路由上~
3、第一个web应用
先来一个最简单的hello world
3、2行代码就搞定了,你会发现python开发网站很有趣,这个叫动态路由
4、调试模式
非常有意思的是调试模式,可以在你修改代码的时候,自动重启web服务器~
5、请求-响应
Flask在分派请求之前激活应用和请求上下文,请求处理完成后再将其删除~
变量名 | 上下文 | 说明 |
current_app | 应用上下文 | 当前应用的应用实例 |
g | 应用上下文 | 处理请求时临时存储的对象 |
request | 请求上下文 | 请求对象 |
session | 请求上下文 | 用户会话 |
Flask请求对象
属性或方法 | 说明 |
form | 一个字典,存储请求提交的所有表单字段 |
args | 一个字典,存储URL传递的所有参数 |
values | 一个字典,form和args的集合 |
cookies | 一个字典,存储请求的所有cookie |
headers | 一个字典,存储请求的所有首部 |
files | 一个字典,存储请求上传的所有文件 |
get_data() | 返回请求主体缓冲的数据 |
get_json() | 一个字典,包含解析请求主体后得到的Json |
method | HTTP请求方法 |
... | ... |
Flask请求钩子
在请求钩子函数和视图函数之间共享数据,一般通过上下文全局变量g
装饰器 | 说明 |
before_request | 在每次请求之前运行 |
before_first_request | 只在处理第一个请求之前运行 |
after_request | 如果没有未处理的异常抛出,在每次请求之后运行 |
teardown_request | 即使有未处理的异常抛出,在每次请求之后运行 |
Flask响应对象
属性或方法 | 说明 |
status_code | HTTP响应状态码 |
headers | 一个类似字典的对象,包含随响应发送的首部 |
set_cookie() | 为响应添加一个cookie |
delete_cookie() | 删除一个cookie |
content_length | 响应主体的长度 |
content_type | 响应主体的媒体类型 |
set_data() | 使用字符串设置响应 |
get_data() | 获取响应主体 |
本篇完,谢谢大家~
发布于 2021-01-10 15:40 (知乎)
猜你喜欢
- 2024-10-15 Python Flask Web表单(flask form表单)
- 2024-10-15 如何在Flask应用程序中使用JSON Web Tokens进行安全认证
- 2024-10-15 综合指南:将 Flask 与 MongoDB 结合使用
- 2024-10-15 python-flask搭建平台,HTML+CSS+JS写前端的web全栈-动画轮播
- 2024-10-15 Flask 表单处理(flask formdata)
- 2024-10-15 三、flask博客项目实战-之表单(flask 表单)
- 2024-10-15 flask python web开发的简单易学框架
- 2024-10-15 Flask-APScheduler使用教程(flask apscheduler)
- 2024-10-15 flask 项目中使用 bootstrapFileInput(进阶篇)
- 2024-10-15 基于flask框架展示数据可视化的一次尝试
- 02-21走进git时代, 你该怎么玩?_gits
- 02-21GitHub是什么?它可不仅仅是云中的Git版本控制器
- 02-21Git常用操作总结_git基本用法
- 02-21为什么互联网巨头使用Git而放弃SVN?(含核心命令与原理)
- 02-21Git 高级用法,喜欢就拿去用_git基本用法
- 02-21Git常用命令和Git团队使用规范指南
- 02-21总结几个常用的Git命令的使用方法
- 02-21Git工作原理和常用指令_git原理详解
- 最近发表
- 标签列表
-
- cmd/c (57)
- c++中::是什么意思 (57)
- sqlset (59)
- ps可以打开pdf格式吗 (58)
- phprequire_once (61)
- localstorage.removeitem (74)
- routermode (59)
- vector线程安全吗 (70)
- & (66)
- java (73)
- org.redisson (64)
- log.warn (60)
- cannotinstantiatethetype (62)
- js数组插入 (83)
- resttemplateokhttp (59)
- gormwherein (64)
- linux删除一个文件夹 (65)
- mac安装java (72)
- reader.onload (61)
- outofmemoryerror是什么意思 (64)
- flask文件上传 (63)
- eacces (67)
- 查看mysql是否启动 (70)
- java是值传递还是引用传递 (58)
- 无效的列索引 (74)