- 4
- 0
- 约2.47千字
- 约 9页
- 2021-08-18 发布于北京
- 举报
PAGE2 / NUMPAGES9
Flask的HTTP方法与模板
Flask的HTTP方法与模板
摘 要:本章节主要对Flask的HTTP方法与模板进行详细讲解。
关键词:Flask;HTPP方法;模板;
1. Flask的HTTP方法
Http协议是万维网中数据通信的基础。在该协议中定义了从指定URL检索数据的不同方法。
下表总结了不同的http方法:
序号
方法与描述
1
GET
以未加密的形式将数据发送到服务器。最常见的方法。
2
HEAD
和GET方法相同,但没有响应体。
3
POST
用于将HTML表单数据发送到服务器。POST方法接收的数据不由服务器缓存。
4
PUT
用上传的内容替换目标资源的所有当前表示。
5
DELETE
删除由URL给出的目标资源的所有当前表示。
默认情况下,Flask路由响应GET请求。但是,可以通过为route()装饰器提供方法参数来更改此首选项。
为了演示在URL路由中使用POST方法,首先让我们创建一个HTML表单,并使用POST方法将表单数据发送到URL。
将以下脚本另存为login.html
现在在Python shell中输入以下脚本:
开发服务器开始运行后,在浏览器中打开login.html,在文本字段中输入name,然后单击提交。
表单数据将POST到表单标签的action子句中的URL。
http://localhost/login映射到login()函数。由于服务器通过POST方法接收数据,因此通过以下步骤获得从表单数据获得的“nm”参数的值:
user = request.form[nm]
它作为变量部分传递给/ success URL。浏览器在窗口中显示welcome消息。
在login.html中将方法参数更改为GET,然后在浏览器中再次打开它。服务器上接收的数据是通过GET方法获得的。通过以下的步骤获得nm参数的值:
User = request.args.get(‘nm’)
这里,args是包含表单参数对及其对应值对的列表的字典对象。与nm参数对应的值将像之前一样传递到/ success URL。
2. Flask模板
可以以HTML的形式返回绑定到某个URL的函数的输出。例如,在以下脚本中,hello()函数将使用标签呈现Hello World。
但是,从Python代码生成HTML内容很麻烦,尤其是在需要放置变量数据和Python语言元素(如条件或循环)时。这需要经常从HTML中转义。
这是可以利用Flask所基于的Jinja2模板引擎的地方。而不是从函数返回硬编码HTML,可以通过render_template()函数呈现HTML文件。
Flask将尝试在templates文件夹中找到HTML文件,该文件存在于此脚本所在的文件夹中。
Application folder
Hello.py
templates
hello.html
术语‘web templating system(web模板系统)’指的是设计一个HTML脚本,其中可以动态插入变量数据。web模板系统包括模板引擎,某种数据源和模板处理器。
Flask使用jinga2模板引擎。Web模板包含用于变量和表达式(在这些情况下为Python表达式)的HTML语法散布占位符,这些是在呈现模板时替换的值。
以下代码在templates文件夹中另存为hello.html 。
接下来,从Python shell运行以下脚本:
当开发服务器开始运行时,打开浏览器并输入URL - http://localhost:5000/hello/mvl
URL的变量部分插入{{name}}占位符。
Jinja2模板引擎使用以下分隔符从HTML转义。
{% ... %}用于语句
{{ ... }}用于表达式可以打印到模板输出
{# ... #}用于未包含在模板输出中的注释
# ... ##用于行语句
在下面的示例中,演示了在模板中使用条件语句。hello()函数的URL规则接受整数参数。它被传递到hello.html模板。其中,比较接收的数字(marks)的值(大于或小于50),因此有条件地呈现HTML。
Python脚本如下:
hello.html的HTML模板脚本如下:
请注意,条件语句if-else和endif包含在分隔符{%..%}中。
运行Python脚本并访问URL http://localhost/hello/60,然后访问 http://localhost/hello/30,以查看HTML的输出是否有条件地更改。
Python循环结构也可以在模板中使用。在以下脚本中,当在浏览器中打开URL http://localhost:5000/result时,result()函数会将
您可能关注的文档
- 应急救援干粉灭火器拓展阅读:干粉灭火器电子教材.doc
- 应急救援二氧化碳灭火器拓展阅读:二氧化碳灭火器电子教材.doc
- 云平台建设与运维类企业案例计算管理医疗云-测试云主机.docx
- 云平台建设与运维类企业案例设备及软件情况港口私有云-服务器配置.docx
- 云平台建设与运维类企业案例设备及软件情况港口私有云-整体架构.docx
- 云平台建设与运维类企业案例设备及软件情况互联网营销云网络规划.docx
- 云平台建设与运维类企业案例系统管理互联网营销云-测试API开放程度.docx
- 云平台建设与运维类企业案例用户安全Animbus平台的角色管理.docx
- 云平台建设与运维类企业案例用户安全Animbus平台的用户管理.docx
- 云平台建设与运维类企业案例用户安全身份认证介绍.docx
- 云应用开发类企业案例MongoDB安装手册、MongoDBMongoDB安装手册.docx
- 云应用开发类企业案例Mysql导入数据到Hbasemysql导入数据到Hbase.docx
- 云应用开发类企业案例MySQL简介、MySQLMySQL简介.docx
- 云应用开发类企业案例Python基础、2.基本程序设计第2章基本程序设计.docx
- 云应用开发类企业案例RDD依赖RDD依赖.docx
- 云应用开发类企业案例Scala集合scala集合.docx
- 云应用开发类企业案例SparkStreaming整合FlumeSparkStreaming整合Flume.docx
- 云应用开发类企业案例Spark的DAGSpark的DAG.docx
- 云应用开发类企业案例spark划分stagespark划分stage.docx
- 云应用开发类企业案例基于Zookeeper搭建Spark集群基于Zookeeper搭建Spark高可用集群.docx
最近下载
- 三相四线电能表不接零线电量分析0516..doc VIP
- 2026年乡村医生招聘考试笔试试题(附答案).docx
- 语言学及应用语言学专业硕士研究生培养方案﹙050102﹚.docx VIP
- 2025年乡村医生招聘考试试题题及答案.docx VIP
- 科学管理原理英文版.doc VIP
- 2026至2031中国互联网+电子数据取证行业市场行业调研及市场前景预测评估报告.docx
- Hive数据仓库应用教程高职PPT完整全套教学课件.pptx VIP
- 《中华民族共同体概论》第十四讲新中国与中华民族新纪元课件.pptx VIP
- 门诊候诊护士岗位说明书.docx VIP
- 居家适老化改造指导手册(2025年版).pptx
原创力文档

文档评论(0)