【Flask】Flask响应请求与模板引擎

简介: 【Flask】Flask响应请求与模板引擎

Flask响应请求与模板引擎

响应请求

响应html

@index_page.route("/text")
def text():
    return "text/html"
@index_page.route("/text_same")
def text_same():
    response = make_response("text/html",200)
    return response

响应json

@index_page.route("/json")
def json():
    import json
    data = {"a":"b"}
    response = make_response(json.dumps(data))
    response.headers["Content-Type"] = "application/json"
    return response

@index_page.route("/json_same")
def json_same():
    data = {"a" : "b"}
    response = make_response(jsonify(data))
    return response

模板响应

@index_page.route("/template")
def template():
    return render_template("index.html") #注意index.html在templates文件夹下

相见如下所示Jinja2模板引擎。

模板引擎

Jinja2用于前后端不分离项目。

基本语法

html文件中的代码

var name = {{name}} 
{% if user %}
{{ user.nickname }} 联系QQ:{{user.qq}}主页:{{user.home_page}}
{% endif %}
 {% for tmp_num in num_list %}
 {{ tmp_num }}
 {% endfor %}

对应python代码:

@index_page.route("/template")
def template():
    #传值
    name = "test01"
    context = {"name":name}
    context['user'] = {'nickname':'小叮当',"qq":"1660219734","home_page":"banshengua.top"}
    context['num_list'] = [1,2,3,4,5]

    return render_template("index.html",**context)
   # return render_template("index.html",name)
  • 模板继承
Jinja中最强大的部分就是模板继承。

模板继承允许你构建一个包含你站点共同元素的基本模板“骨架”,并定义子模块可以覆盖的块。

(类似于QT中QSS的语法,例如,#QPushButton{xxx},对当前ui文件中的所有QPushButton部件进行统一的美化。)其实也不是很贴切。

{% extends "common/layout.html" %}

{% block content %}

hello i am extend_template

{% endblock %}

common/layout.html

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>这是统一模板</title>
</head>
<body>
{% block content %} {% endblock %}
</body>
</html>

对应python调用

@index_page.route("/extend_template")
def extend_template():
    return render_template("extend_template.html")

项目结构:

image-20220508003141224

这里的layout就是一个通用的模板。extend_template.html和extend_template_other.html在layout.html基础上进行修改。(例如:子类重写父类)

相关文章
|
5月前
|
NoSQL Redis UED
揭秘!Flask如何携手Celery,让异步任务处理不再是难题,打造极速响应的Web应用新纪元!
【8月更文挑战第31天】在Web开发中,Flask与Celery的结合为异步任务处理提供了强大支持。Flask作为轻量级Web框架,以其简洁灵活著称;而Celery则是一个分布式任务队列系统,擅长处理耗时任务。二者结合,Flask专注于处理Web请求,Celery则在后台异步执行复杂任务,如发送邮件或调用外部API。这种方式不仅提升了应用性能和响应速度,还优化了用户体验。下面的示例展示了如何在Flask应用中集成Celery以实现异步任务处理。
216 0
|
7月前
|
API 网络架构 开发者
Flask Web开发基础【路由和Jinja2模板引擎】
# Flask Web开发基础 Flask是轻量级Web框架,专注于核心功能:请求响应、模板渲染和URL路由。本文档介绍了使用Flask的基础知识,包括命令行和Python两种运行模式,以及如何修改入口文件、端口和地址。此外,还讨论了URL路由的概念和其在Flask中的实现,展示了动态路由和多URL绑定的例子。最后,提到了Jinja2模板引擎,解释了其基本语法,并通过电影列表案例展示了如何结合Flask使用模板。
77 1
|
3月前
|
JSON 中间件 数据格式
五、Flask的请求和响应方法与常用技巧
五、Flask的请求和响应方法与常用技巧
123 0
|
5月前
|
JSON 前端开发 API
[flask]统一API响应格式
[flask]统一API响应格式
|
8月前
|
前端开发 数据库 Python
使用 Python 的 Web 框架(如 Django 或 Flask)来建立后端接口,用于处理用户的请求,从数据库中查找答案并返回给前端界面
【1月更文挑战第13天】使用 Python 的 Web 框架(如 Django 或 Flask)来建立后端接口,用于处理用户的请求,从数据库中查找答案并返回给前端界面
266 7
|
5月前
|
数据库 关系型数据库 MySQL
惊!Hibernate与MySQL的绝密优化技巧大揭秘,让你的数据库飞起来!
【8月更文挑战第31天】在企业应用开发中,结合使用持久层框架Hibernate与数据库管理系统MySQL可显著提升数据库交互效率。本文探讨了多项优化策略,包括配置二级缓存、采用单向关联减少JOIN操作、优化HQL查询语句以及合理使用MySQL索引。通过具体示例,文章详细讲解了如何实施这些优化措施,以期为企业应用提供更高效稳定的数据支持。
78 0
|
7月前
|
JSON API 数据格式
如何使用Flask request对象处理请求
在 Flask 中,request对象是处理 HTTP 请求的重要工具之一。它提供了许多属性和方法,可以帮助我们获取请求的相关信息和数据。本文将向你介绍request对象的常用方法以及如何在 Flask 应用程序中使用它。
154 3
|
8月前
|
网络架构 Python
在Flask中,如何定义路由并处理HTTP请求的不同方法(GET、POST等)?
【4月更文挑战第25天】在Flask中,使用`@app.route()`装饰器定义路由,如`/hello`,处理GET请求返回&#39;Hello, World!&#39;。通过添加`methods`参数,可处理不同HTTP方法,如POST请求。单一函数可处理多种方法,通过检查`request.method`区分。动态路由使用 `&lt;variable_name&gt;` 传递URL变量到视图函数。这些基础构成处理HTTP请求的Flask应用。
143 1
|
8月前
|
JSON 数据格式 Python
如何在Flask框架中定义路由和处理请求?
【4月更文挑战第18天】在Flask框架中,创建应用实例、定义路由和处理请求涉及5个步骤:1) 导入Flask并实例化应用;2) 使用`app.route()`装饰器定义路由,指定URL和HTTP方法;3) 编写视图函数处理请求逻辑;4) 视图函数返回响应内容,Flask会自动转换格式;5) 用`app.run()`启动服务器。
117 3
|
8月前
|
存储 JSON 数据安全/隐私保护
Flask Python:如何获取不同请求方式的参数
Flask Python:如何获取不同请求方式的参数
367 0