【Flask笔记2】

目录

一、request对象

二、模板的使用

三、过滤器的使用

四、Web表单

一、request对象

1.request直接从flask模板中导入

2. Request:将请求行、请求头、请求体封装到一个request对象里

请求方法:

1>request.headers:获取请求头

2>method:请求方法,比如POST、GET

3>data:包含了请求的数据,并转换为字符串

4>path:获取请求文件路径

5>request.args.get:用于获取get请求参数

from flask import Flask,request
app=Flask(__name__)
app.config['ENV']='development'
app.config['DEBUG']='True'
@app.route('/index')
def index():
    print(request.headers)#request是一个对象,对象访问属性,调用方法
    print(request.path)
    return "Hello!"
if __name__ == '__main__':
    app.run()

二、模板的使用

1.模板语言:被设计自动生成文档的简单文本格式,模板语言中,一般会把一些变量传给模板,替换模板特定位置上预先定义好的变量名

2.渲染模板函数:

flask提供的render_template函数封装该模板引擎

render.template函数第一个参数是模板的文件名,后面参数都是键值对,表示模板中变量对应的真实值 

3.变量代码块:{ {}}来表示变量名,这种语法叫做变量代码块 

4.注释:用{# #}来进行注释

5.控制代码块:用{% %}定义的控制代码块,可以实现一些语言层次的功能,比如循环或if语句

例:利用render_template如何返回一个网页,以及如何给模板填充数据

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>模块</title>
</head>
<body>
这是首页<br>
这是模板<br>
{#下面是一个变量代码块的使用#}
{
   
   {url_str}} <br>
{#列表的传入与使用#}
{
   
   {my_list}} <br>
{
   
   {my_list.1}} <br>
{
   
   {my_list[1}} <br>
{
   
   {my_dict}} <br>
{
   
   {my_dict.url}} <br>
{
   
   {my_dict['url']}} <br>
<hr>
{% for num in my_list %}
    {
   
   {num}} <br>
{% end for %}
</body>
</html>
from flask import Flask,render_template
app=Flask(__name__)
@app.route('/')
def index():
    #如果需要传入网址
    url_str='www.itheima.com'
    my_list=[1,2,3,4]
    my_dict={
        'name':'百度',
        'url':'www.baidu.com'
    }
    #通常,模板中使用的变量名和要传递的数据名保持一致
    return render_template('index.html',url_str=url_str,my_list=my_list,my_dict=my_dict)
if __name__ == '__main__':
    app.run(debug=True)

三、过滤器的使用

1.过滤器的本质是函数,用于修改变量的显示、进行格式化以及运算等等,模板中不能直接调用Python中某些方法,用到了过滤器

使用方式:变量名|过滤器

{ {variable|filter_name}}

2.常见过滤器的使用

1>safe:禁用转义

<p>{ {'<em>hello</em>'|safe}}</p>

2>capitalize:首字母大写

<p>{ {'hello'|capitalize}}</p>

3>lower:转换成小写

<p>{ {'HELLO'|lower}}</p>

4>upper:转换成大写

<p>{ {'hello'|upper}}</p>

5>title:每个单词首字母大写

6>reverse:字符串反转

7>format:格式化输出

8>sort:排序

<p>{ { [5,4,9,6,3,0,2] |sort }}</p>

3.过滤器链式调用:{ { "hello,world"|reverse|upper}},从第一个往后依次调用

四、Web表单

1.web表单是HTML页面中负责数据采集的部件,表单由三部分组成:表单标签、表单域、表单按钮。Flask中,为了处理表单,一般使用Flask-WTF扩展,封装了WTForms,并且有验证表单数据的功能

2.例:简单的表单验证

from flask import Flask,render_template,request
app=Flask(__name__)
'''
目的:实现一个简单的登录的逻辑处理
1.路由有get和post两种请求方式-->判断请求方式
2.获取请求的参数
3.判断参数是否填写&密码是否一致
4.没有问题,返回success
'''
@app.route('/',methods=['GET','POST'])
def index():
    if request.method=='POST':
        username=request.form.get('username')
        password=request.form.get('password')
        password2= request.form.get('password2')
        print (password)
        if not all([username,password,password2]):
            print ('参数不完整')
        elif password!=password2:
            print('密码不一致')
        else:
            return 'success'

        return 'success'
    return render_template('index1.html')
if __name__ == '__main__':
    app.run(host='0.0.0.0',port=8888,debug=True)
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>登录界面</title>
</head>
<body>
<form method="post">
    <label>用户名:</label><input type="text" name="username"><br>
    <label>密码:</label><input type="password" name="password"><br>
    <label>确认密码:</label><input type="password" name="password"><br>
    <input type="submit" value="提交"><br>
    {% for message in get_flashed_messages() %}
        {
   
   {message}}
    {% end for %}
</form>
</body>
</html>

 

猜你喜欢

转载自blog.csdn.net/m0_70964767/article/details/126782532