Flask:url、视图、模板

一、url_for

url_for 获取路由 可用于重定向

from flask import Flask, request, url_for

app = Flask('__name__')


@app.route('/')
def baidu():
    print(url_for('article_list', aid=1, page=2)) 
    # url_for 获取路由 传值:函数名,参数值(可多个 输出用 ?参数名1=参数值1&参数名2=参数值2)
    return 'hello world'


@app.route('/article/<aid>') # 定义了的参数 需要传定义了的参数名 再进行传其他参数名
def article_list(aid):
    return 'article list {}'.format(aid)

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

在这里插入图片描述
指定末尾斜杠

设置路由时,自己在末尾写了 ‘/’ 网页链接里可以写或不写;没有在末尾写’/'时 网页链接结束则不能写 可以用 path接收

二、HTTP的请求方式

最常用:get,post

from flask import Flask, request, url_for

app = Flask('__name__')


@app.route('/', methods=['GET', 'POST'])
# methods 默认传入 GET 且自行传入请求方法时 必须要传入 GET
def hello_world():
    # print(request.args.get('name')) # get 方法
    # print(request.form.get('name')) # post 方法  post 需要用软件 postman 设置参数
    return 'hello world'


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

在这里插入图片描述

三、网页跳转和重定向

转发:a找b借钱 b找c借钱再借给a
重定向:a找b借钱 b让a去找c a再找c借钱

网页跳转:输入网页跳转到其他网页上 客户端不知道发生两次跳转 网页链接没变 一次请求

重定向:输入网页跳转到其他网页上 两次请求

from flask import Flask, request, redirect, url_for
app = Flask(__name__)


@app.route('/login')
def login():
    return 'login'


@app.route('/profile/')
def profile():
    name = request.args.get('name')  
    # 判断传入name值 输出name值 不传name值 重定向到 login函数里
    if name:
        return name
    else:
        return redirect(url_for('login'), code=301)  
        # 设置永久重定向 code = 301


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

四、response响应

from flask import Flask, request, redirect, url_for, Response, make_response

app = Flask(__name__)


@app.route('/about/')
def about():
    # return 'cheney'
    # return [1, 2, 3]  # 不能返回列表
    # return {"name": 'python'}
    # return ('name', 'python')
    # return ('python','JAVA')  # 嵌套列表也不行
    # return 'python', 400
    return Response('python', status=200, mimetype='text/html')  # 响应值 状态码
    # return make_response('友情提示')


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

五、flask模板

render_template

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值