版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/sunshunli/article/details/83277647
第一部分是过滤器
这是我们的py文件
#1.导入Flask扩展.
from flask import Flask#导入我们的Flask框架
from flask import render_template#我们的返回值有两种,如果要返回html,就需要导入这个模块
#2.创建Flask应用程序实例,需要传入_name_,作用是为了确定资源所在的路径
app = Flask(__name__)
#3.确定路由及其视图函数,@app为装饰器
#Flask中定义路由是通过装饰器实现的,装饰器下面紧跟着我们定义的函数
#路由默认值只支持GET,如果想要其他的方法,那么就添加method方法
@app.route('/',methods=['GET','POST'])
#这种是返回的字符串内容
def hello_world():
return 'Hello World!'
#这是返回HTML内容
@app.route('/login.html')
def login():
url_str='www.baidu.com'
url_list=[1,2,3,4,5]
#通常,我们模板中(模板就是我们的html文件)使用的变量名和要传递的数据名是一样的
return render_template('login.html',url_str=url_str,url_list=url_list)
#下面来实现使用一个视图函数u,来实现不同的订单信息,order_id默认的是字符串,如果想要特性的格式,那么
#可以在前面加上类型
@app.route('/order/<int:order_id>')
def get_order_id(order_id):
return 'order_id is %s' %order_id
#4.启动程序
if __name__ == '__main__':
#执行app.run就会将我们的Flask程序运行在一个简单的服务器上(服务器有Flask提供,用于测试)
app.run()
我们的html文件
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
{#过滤器,字符串大小写转换#}
{{ url_str | upper}}<br>
{#过滤器,字符串大小写转换#}
{{ url_str | lower}}<br>
{#过滤器,字符串中每个单词的首字母大写#}
{{ url_str|title}}
{#过滤器,字符串翻转#}
{{ url_str | reverse}}<br>
{#过滤器的链式调用#}
{{ url_str|upper|lower}}<br>
<hr>
{#下面是列表的操作。第一个元素,最后一个元素,长度,求和,排序#}
<p>{{ url_list|first}}</p>
<p>{{ url_list|last}}</p>
<p>{{ url_list|length}}</p>
<p>{{ url_list|sum}}</p>
<p>{{ url_list|sort}}</p>
</body>
</html>
第二部分是我们的表单验证
from flask import Flask,request,render_template,flash
'''
在程序中如果想要给模板传递消息,模板就是我们的网页,就要用到flash(flash是需要加密的)来传递,那么网页如何接受我们的
消息呢,,需要遍历
'''
app = Flask(__name__)
app.secret_key='sun'
@app.route('/',methods=['GET','POST'])
def login_html():
#request是我们的请求对象
#1.request来获取我们的请求方法
if request.method == 'POST':
#2.request获取表单中的值
username = request.form.get('username')
password = request.form.get('password')
acknowledge = request.form.get('acknowledge')
if not all([username,password,acknowledge]):
# print('请填完整内容')
flash('请填完整内容')#如果要执行这条语句,那么就会加密,把我们的上面加密的部分字符串加入到这里面
elif password!=acknowledge:
# print("两次密码不一致")
flash('两次密码不一致')
else:
return 'success'
return render_template('login.html')
if __name__ == '__main__':
app.run(debug=True)
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>登录界面</title>
</head>
<body>
<form method="post">
<lable>用户名:</lable><input type="text" name="username"><br>
<lable>密码:</lable><input type="text" name="password"><br>
<lable>确认密码:</lable><input type="text" name="acknowledge"><br>
<input type="submit" value="提交"><br>
{#使用遍历获取闪现的消息#}
{% for message in get_flashed_messages() %}
{{message}}
{% endfor %}
</form>
</body>
</html>
</html>