二、Flask会话技术和模板语言

这篇具有很好参考价值的文章主要介绍了二、Flask会话技术和模板语言。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

Cookie

二、Flask会话技术和模板语言,python,flask,python,后端
二、Flask会话技术和模板语言,python,flask,python,后端
二、Flask会话技术和模板语言,python,flask,python,后端

Session

二、Flask会话技术和模板语言,python,flask,python,后端

二、Flask会话技术和模板语言,python,flask,python,后端

# views.py: 路由 + 视图函数
import datetime

from flask import Blueprint, render_template, request, redirect, session
from .models import *

# 蓝图
blue = Blueprint('user', __name__)


# 首页 可以写两个路由,都是访问同一个函数
@blue.route('/')
@blue.route('/home/')
def home():
    # 4. 获取cookie
    # username = request.cookies.get('user')
    # 获取session
    username = session.get('user')
    print('username',username)
    return render_template('home.html', username=username)


# 登录
@blue.route('/login/', methods=['GET', 'POST'])
def login():
    # GET:访问登录页面
    if request.method == 'GET':
        return render_template('login.html')
    # POST: 实现登录功能
    elif request.method == 'POST':
        pass
        # 1. 获取前端提交过来的数据
        username = request.form.get('username')
        password = request.form.get('password')
        # 2. 模拟登录:用户名和密码验证
        if username == 'lisi' and password == '123':
            # 登录成功
            response = redirect('/home/')
            # 3. 设置cookie
            #    cookie不能用中文
            # response.set_cookie('user', username)  # 默认浏览器关闭则cookie失效
            # 过期时间:
            #   max_age: 秒
            #   expires: 指定的datetime日期
            # response.set_cookie('user', username, max_age=3600*24*7)
            # response.set_cookie('user', username, expires=datetime.datetime(2023, 12, 12))
            # 设置session
            session['user'] = username
            session.permanent = True
            return response
        else:
            return '用户名或密码错误!'

# 注销
@blue.route('/logout/')
def logout():
    response = redirect('/home/')
    # 5.删除cookie
    # response.delete_cookie('user')
    # 删除session
    session.pop('user')
    # session.clear()  # 慎用,会删除服务器下的所有session
    return response

Templates

二、Flask会话技术和模板语言,python,flask,python,后端
二、Flask会话技术和模板语言,python,flask,python,后端

模板语法

二、Flask会话技术和模板语言,python,flask,python,后端二、Flask会话技术和模板语言,python,flask,python,后端二、Flask会话技术和模板语言,python,flask,python,后端

二、Flask会话技术和模板语言,python,flask,python,后端

二、Flask会话技术和模板语言,python,flask,python,后端文章来源地址https://www.toymoban.com/news/detail-852057.html

循环判断

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Home</title>
</head>
<body>
    <h2>Home</h2>
    <hr>

    {#  模板语言的注释   #}

    <h4>变量:</h4>
    <p>name: {{ name }}</p>
    <p>age: {{ age }}</p>
    <p>likes: {{ likes }}</p>

    <hr>
    <h4>标签:</h4>
    <h5>if语句</h5>
    {% if age >= 18 %}
        <p>{{ name }}已经成年了</p>
    {% elif age >= 6 %}
        <p>{{ name }}可以上学了</p>
    {% else %}
        <p>{{ name }} 还是小孩 </p>
    {% endif %}
    

    <h5>for循环</h5>
    {% for like in likes %}

        {% if loop.first %}
            <p style="color: red;">{{ like }}</p>
        {% elif loop.last %}
            <p style="color: blue;">{{ like }}</p>
        {% else %}
            <p>{{ like }}</p>
        {% endif %}

        index: {{ loop.index }},
        index0: {{ loop.index0 }},
        revindex: {{ loop.revindex }},
        revindex0: {{ loop.revindex0 }}

    {% else %}
        <b>else</b>
    {% endfor %}




    <br><br><br><br><br>
    <br><br><br><br><br>
    <br><br><br><br><br>
</body>
</html>

结构标签

  • base.html
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>父模板</title>

    {#  通用css文件   #}
    <link rel="stylesheet" href="{{ url_for('static', filename='css/base.css') }}">
    {% block extcss %}
    {% endblock %}
</head>
<body>

    {% block head %}
    {% endblock %}

    <hr>

    {% block content %}
    {% endblock %}

    <hr>

    {% block foot %}
    {% endblock %}

    {#  通用的js文件  #}
    <script src="{{ url_for('static', filename='js/base.js') }}"></script>
    {% block extjs %}
    {% endblock %}

</body>
</html>
  • child1.html
{% extends 'base.html' %}

{% block head %}
    <div>
        <p>python YYDS Head</p>
    </div>
{% endblock %}


  • child2_include.html
<div>我是child2中include的内容</div>
  • child2.html
{# 继承父模板 #}
{% extends 'child1.html' %}

{# super #}
{% block head %}
<!--super() 会保留child1.html中的内容-->
    {{ super() }}
    <p>Python</p>
{% endblock %}


{# include #}
{% block content %}
<!--  将child2_include中内容在此处加载-->
    {% include 'child2_include.html' %}
    <p>Flask Content</p>
{% endblock %}


{# 宏定义:Python函数 #}
{% macro person(name, age) %}
    <b>姓名:{{ name }}, 年龄:{{ age }}</b>
{% endmacro %}

{% block foot %}
<!--调用宏定义的函数-->
    {{ person("坤坤", 25) }}

    {#  过滤器  #}

    <p>{{ name | capitalize }}</p>
<!-- 首字母大写-->
    <p>{{ name | title }}</p>
    <p>{{ name | upper }}</p>
    <p>{{ name | lower }}</p>
    <p>{{ name | upper | first | lower }}</p>
    <p>{{ name2 | default('kunkun') }}</p>
    <p>...</p>

{% endblock %}


到了这里,关于二、Flask会话技术和模板语言的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Python Flask 后端向前端推送信息——轮询、SSE、WebSocket

    后端向前端推送信息,通知任务完成 轮询 SSE WebSocket 请求方式 HTTP HTTP TCP长连接 触发方式 轮询 事件 事件 优点 实现简单易兼容 实现简单开发成本低 全双工通信,开销小,安全,可扩展 缺点 消耗较大 不兼容IE 传输数据需二次解析,开发成本大 适用场景 服务端向客户端单向

    2023年04月19日
    浏览(91)
  • 【自学开发之旅】Flask-会话保持-API授权-注册登录

    http - 无状态-无法记录是否已经登陆过 #会话保持 – session cookie session – 保存一些在服务端 cookie – 保存一些数据在客户端 session在单独服务器D上保存,前面数个服务器A,B,C上去取就好了,业务解耦。—》》现在都是基于token的验证。 以上是基于BS架构 API授权 由服务端完全把

    2024年02月07日
    浏览(35)
  • 【Python】Web学习笔记_flask(7)——Jinja2模板(1)

    Jinja2是基于python的模板引擎,功能类似于PHP的amarty、J2ee的Freemarker和velocity,完全支持Unicode,并具有集成的沙箱执行环境,Jinja2使用的事BSD协议,允许使用者修改和重新发布代码,也允许使用或在BSD代码上开发商业软件发布和销售。 渲染模板: 执行关键代码: 执行结果:  

    2024年02月11日
    浏览(46)
  • 【python】flask模板渲染引擎Jinja2,流程控制语句与过滤器的用法剖析与实战应用

    ✨✨ 欢迎大家来到景天科技苑✨✨ 🎈🎈 养成好习惯,先赞后看哦~🎈🎈 🏆 作者简介:景天科技苑 🏆《头衔》:大厂架构师,华为云开发者社区专家博主,阿里云开发者社区专家博主,CSDN新星创作者,掘金优秀博主,51CTO博客专家等。 🏆《博客》:Python全栈,前后端开

    2024年04月11日
    浏览(47)
  • 后端框架flask学习小记

    最近在和几个伙伴尝试搭建一个新闻推荐系统, 算是一个推荐算法的实战项目, 里面涉及到了前后端交互, 该项目里面,使用了Flask作为后台框架, 为了理清楚整个系统的交互,所以就快速参考着资料学习了下flask, 主要还是参考伙伴们写的flask简介和基础的内容, 加上了

    2023年04月27日
    浏览(47)
  • Flask:模板渲染

    本文章只作为个人笔记. 文章目录 前言 一、模板渲染 二、效果 模板渲染 使用render_template可以达到用html文件对网页进行渲染,可以传参数. 使用html收到变量,用{{变量名}}这样就能拿到变量的值了. blog_detail.html渲染效果: index.html渲染效果

    2024年01月23日
    浏览(45)
  • Python爬虫技术系列-03/4flask结合requests测试静态页面和动态页面抓取

    flask内容参考:Flask框架入门教程(非常详细) 安装flask 创建一个webapp.py文件,内容如下 运行代码 终端输出如下: 在浏览器输入 返回如下 创建webapp_html_str.py文件,代码如下: 运行 运行代码 在浏览器输入 返回如下 返回一个静态html页面 在工程目录下,创建一个templates目录,在

    2024年02月04日
    浏览(50)
  • 六、Flask模板使用方法

    Flask使用Jinja2作为默认的模板引擎,可以轻松地将动态数据渲染到HTML页面中。以下是Flask模板的基本使用方法: 首先,在Flask应用程序的根目录下创建一个名为templates的文件夹,用于存放HTML模板文件。 在Python代码中导入必要的模块: 创建Flask应用程序对象: 创建路由,并在

    2024年02月06日
    浏览(37)
  • Flask 网站装潢, 简易更换模板

    本博文找个好看的网页模板,并简单改一改变成flask模板,并展示 主博客目录:《从零开始学习搭建量化平台笔记》 主项目计划需要Flask展示可视化数据网站需要一个好看的主页。 任务:找一个好看的模板并改成Flask模板。 在某乎上找了个下载免费模板的网站。(中文网站)

    2024年02月06日
    浏览(44)
  • flask web学习之模板(二)

    一、模板结构组织 1.1 局部模板 当多个独立模板中都会使用同一块HTML代码时,我们可以把这部分代码抽离出来,存储到局部模板中。这样,既可以避免重复,也可以方便统一管理。 1.2 宏 宏是Jinja2提供的一个非常有用的特性,它类似Python的函数。使用宏可以把一部分代码封装

    2024年01月15日
    浏览(36)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包