Flask :构造URL(url for)、指定URL末尾的斜杠、指定HTTP方法、页面跳转和重定向、关于响应(Reponse)、flask模板渲染和模板传参

1.构造URL(url for)

这部分还是属于url和视图 知识点范围。

URL for 知识点的由来
前一篇我们了解了,路由映射到函数,返回函数值。那么我们是否可以通过函数,反推路由,来获得url呢?这就是这个知识的背景应用。

通过构建URL的方式而选择直接在代码中拼URL的原因有两点:
1.将来如果修改了URL,但没有修改该URL对应的函数名,就不用到处去替换URL了。
2. url_for()函数会转义一些特殊字符和unicode字符串,这些事情url_for会自动的帮助我们搞定。
Flask :构造URL(url for)、指定URL末尾的斜杠、指定HTTP方法、页面跳转和重定向、关于响应(Reponse)、flask模板渲染和模板传参
执行后,看看,已经有/article/1 等路由反馈了。
Flask :构造URL(url for)、指定URL末尾的斜杠、指定HTTP方法、页面跳转和重定向、关于响应(Reponse)、flask模板渲染和模板传参
拿到路由有什么用呢? 一会讲

另外注意:
Flask :构造URL(url for)、指定URL末尾的斜杠、指定HTTP方法、页面跳转和重定向、关于响应(Reponse)、flask模板渲染和模板传参

Flask :构造URL(url for)、指定URL末尾的斜杠、指定HTTP方法、页面跳转和重定向、关于响应(Reponse)、flask模板渲染和模板传参
Flask :构造URL(url for)、指定URL末尾的斜杠、指定HTTP方法、页面跳转和重定向、关于响应(Reponse)、flask模板渲染和模板传参
小总结:
Flask :构造URL(url for)、指定URL末尾的斜杠、指定HTTP方法、页面跳转和重定向、关于响应(Reponse)、flask模板渲染和模板传参

2.指定URL末尾的斜杠

有斜杠和没有斜杆是两个不同的路由,要注意。
代码中的没加 /,则访问时不能加 /,
代码中加了/,则访问时/ 就是严格结尾

Flask :构造URL(url for)、指定URL末尾的斜杠、指定HTTP方法、页面跳转和重定向、关于响应(Reponse)、flask模板渲染和模板传参

3.指定HTTP方法

Flask :构造URL(url for)、指定URL末尾的斜杠、指定HTTP方法、页面跳转和重定向、关于响应(Reponse)、flask模板渲染和模板传参

如我们简单的第一个程序也就是get请求。
Flask :构造URL(url for)、指定URL末尾的斜杠、指定HTTP方法、页面跳转和重定向、关于响应(Reponse)、flask模板渲染和模板传参
可以使用这个工具,能模拟发起一个网页请求。
Flask :构造URL(url for)、指定URL末尾的斜杠、指定HTTP方法、页面跳转和重定向、关于响应(Reponse)、flask模板渲染和模板传参

get和post 请求区别:
get是将请求写在url里的。
而post是写在form表单中的。

在route的methods中,写好post方法,否则默认是get,一旦请求方式是post会报错。

Flask :构造URL(url for)、指定URL末尾的斜杠、指定HTTP方法、页面跳转和重定向、关于响应(Reponse)、flask模板渲染和模板传参
那么要用post的话,就是把args 改为form
Flask :构造URL(url for)、指定URL末尾的斜杠、指定HTTP方法、页面跳转和重定向、关于响应(Reponse)、flask模板渲染和模板传参

4. 页面跳转和重定向

重定向,是当你网页跳转到其他时,比如,你要登陆啊,临时重定向 302和永久重定向301。

如何写重定向代码呢?
至少两个路由万能完成重定向

没有写name就返回根目录路由。
写了login的name就获得名称

下面还有一处,将code=301,就是将临时302 设定成301永久重定向。 可以从开发者语言中看network。
Flask :构造URL(url for)、指定URL末尾的斜杠、指定HTTP方法、页面跳转和重定向、关于响应(Reponse)、flask模板渲染和模板传参
记住:传参时一般写在‘’中,而执行页面时,在路由输入时,不要写‘’

Flask :构造URL(url for)、指定URL末尾的斜杠、指定HTTP方法、页面跳转和重定向、关于响应(Reponse)、flask模板渲染和模板传参

5.关于响应(Reponse)

以下都是可以的,除了 return ([‘python’,‘JAVA’])
因为元组只传第一个参数,另一个应该会出现在network中,不会显示的。
Flask :构造URL(url for)、指定URL末尾的斜杠、指定HTTP方法、页面跳转和重定向、关于响应(Reponse)、flask模板渲染和模板传参

Flask :构造URL(url for)、指定URL末尾的斜杠、指定HTTP方法、页面跳转和重定向、关于响应(Reponse)、flask模板渲染和模板传参

6. flask模板渲染和模板传参

前端代码显示,受后端代码控制和限制。所以需要用到flask模板

一般前后端分离,效率高,也比较精

Flask :构造URL(url for)、指定URL末尾的斜杠、指定HTTP方法、页面跳转和重定向、关于响应(Reponse)、flask模板渲染和模板传参
flask 模板
Flask :构造URL(url for)、指定URL末尾的斜杠、指定HTTP方法、页面跳转和重定向、关于响应(Reponse)、flask模板渲染和模板传参
可以在pycharm左侧
创建文件夹,把所有前端文件,要做的模板等全部放进去,以后调用时,注意要写目录。
比如下方,如果demo文件也放在了pycharm的demo文件夹下面,那么代码就要写成“demo/demo.html”
Flask :构造URL(url for)、指定URL末尾的斜杠、指定HTTP方法、页面跳转和重定向、关于响应(Reponse)、flask模板渲染和模板传参
flask 模板传参
同样,沿用上面那张程序代码图

构造context方法

然后总不能传那么多参数吧,所以用**context, 我们以前学过 *arges等,不就是类似拆包吗。
Flask :构造URL(url for)、指定URL末尾的斜杠、指定HTTP方法、页面跳转和重定向、关于响应(Reponse)、flask模板渲染和模板传参

注意列表的两种取值方式都可以实现。
Flask :构造URL(url for)、指定URL末尾的斜杠、指定HTTP方法、页面跳转和重定向、关于响应(Reponse)、flask模板渲染和模板传参