Python_Flask 模板语法 模板变量(list、dict、object)

该博客介绍了如何利用Python的Flask框架动态生成HTML页面,将用户注册信息以表格形式展示。在`app.py`中,通过用户POST请求获取并保存用户名和密码到列表`users`,然后在`/show`路由中,将`users`列表转化为JSON字符串并返回到HTML模板,表格在模板中根据用户数量动态创建。
摘要由CSDN通过智能技术生成

当前需要把客户填写的信息已表格的内容呈现出来,我们创建html页面,name要创建表格,如何时间有多少信息,就创建多少表格呢?我们使用动态创建,就在html页面写python语言,那么谁来翻译呢?引擎

代码基础

import json
from flask import Flask, render_template, request, redirect, url_for
import settings

app = Flask(__name__)
app.config.from_object(settings)

users = []  #定义一个列表,一个用户输入的信息就是一个字典
@app.route('/',endpoint='index')        #endpoint类似于小名
def index():  # put application's code here
    return render_template('index.html')

@app.route('/add/<int:n1>/<int:n2>')
def add(n1,n2):
    if n1 > 0 and n2 > 0:
        r = n1 + n2
        return '运算结果是:' + str(r)
    return '输入的两个数必须大于零' #加上这个语句 ,视图函数必须要有返回值

@app.route('/register',methods=['GET','POST'])
def register():
    print(request.method)
    if request.method == 'POST':    #post需要大写
        username = request.form.get('username')
        password = request.form.get('password')
        repassword = request.form.get('repassword')
        #用户密码一致性验证
        if password==repassword:
            #保存用户
            user = {'username':username,'password':password}
            users.append(user)

            return redirect(url_for('index'))   #重定向
        else:
            return '两次密码不一致'

    return render_template('register.html') #注意加''

@app.route('/show')
def show():
    #user[]转换成字符串类型
    #要把数据展现出来 json字符串
    j_str = json.dumps(users)
    return j_str

@app.route('/test')
def test():
    url = url_for('index')      #映射 反向解析
    print(url)
    return 'test'

if __name__ == '__main__':
    app.run(port=5001)
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>展示</title>
</head>
<body>
用户信息展示
{#如何保障用户填了多少个信息,就创建多少的表格#}
<table>
    {#动态创建#}
{#    for user in users: python语言怎么可以在html里面写呢?当然也可以#}
{#    网页里面写python的东西,name谁来翻译,引擎来。#}
    
    <tr>
        <td></td>
    </tr>
</table>
</body>
</html>

模板语法

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
gender并没有在.py里面赋值 以空白字符串填充了。不是none,是长度为0的字符串。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
总结
在这里插入图片描述

模板变量list

# -*- codeing = utf-8 -*-
# @Time : 2021/8/18 13:40
# @Author : 二帆
# @File : app1.py
# @Software : PyCharm
from flask import Flask, render_template, request
import settings

app=Flask(__name__)
app.config.from_object(settings)

@app.route('/show')
def show():
    name = '二帆'
    age = 18
    friends =['A1','A2','A3','A4']
    return render_template('show.html',name = name,age =age,gender ='男',friends = friends)

if __name__ == '__main__':
    app.run()

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>展示</title>
</head>
<body>
<div>用户信息展示</div>
<p>
    用户名是:{{ name }} --{{ age }}  --  {{ gender }}
    <br>
    {{ friends }}
</p>
</body>
</html>

在这里插入图片描述
在这里插入图片描述

模板字典dict

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>展示</title>
</head>
<body>
<div>用户信息展示</div>
<p>
    用户名是:{{ name }}
    <br>
    {{zidian.get('gi1')}}
</p>
</body>
</html>
# -*- codeing = utf-8 -*-
# @Time : 2021/8/18 13:40
# @Author : 二帆
# @File : app1.py
# @Software : PyCharm
from flask import Flask, render_template, request
import settings

app=Flask(__name__)
app.config.from_object(settings)


@app.route('/show')
def show():
    name = '二帆'
    zidian ={'gi1':'1','gi2':'2'}
    return render_template('show.html',name = name,zidian=zidian)

if __name__ == '__main__':
    app.run()


模板class–对象

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

# -*- codeing = utf-8 -*-
# @Time : 2021/8/18 13:40
# @Author : 二帆
# @File : app1.py
# @Software : PyCharm
from flask import Flask, render_template, request
import settings

app=Flask(__name__)
app.config.from_object(settings)

class Girl:
    def __init__(self,name,addr):
        self.name=name
        self.gender = '女'
        self.addr = addr

    def __str__(self):
        return self.name

@app.route('/show')
def show():
    name = '二帆'
    #创建对象
    girlfriend = Girl('妹妹','山西')

    return render_template('show.html',name = name,girl = girlfriend)

if __name__ == '__main__':
    app.run()


在这里插入代码片
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>展示</title>
</head>
<body>
<div>用户信息展示</div>
<p>
    用户名是:{{ name }}
    <br>
    {{ girl }}
</p>
</body>
</html>

总结

在这里插入图片描述

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值