当前需要把客户填写的信息已表格的内容呈现出来,我们创建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>