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会自动的帮助我们搞定。
执行后,看看,已经有/article/1 等路由反馈了。
拿到路由有什么用呢? 一会讲
另外注意:
小总结:
2.指定URL末尾的斜杠
有斜杠和没有斜杆是两个不同的路由,要注意。
代码中的没加 /,则访问时不能加 /,
代码中加了/,则访问时/ 就是严格结尾
3.指定HTTP方法
如我们简单的第一个程序也就是get请求。
可以使用这个工具,能模拟发起一个网页请求。
get和post 请求区别:
get是将请求写在url里的。
而post是写在form表单中的。
在route的methods中,写好post方法,否则默认是get,一旦请求方式是post会报错。
那么要用post的话,就是把args 改为form
4. 页面跳转和重定向
重定向,是当你网页跳转到其他时,比如,你要登陆啊,临时重定向 302和永久重定向301。
如何写重定向代码呢?
至少两个路由万能完成重定向
没有写name就返回根目录路由。
写了login的name就获得名称
下面还有一处,将code=301,就是将临时302 设定成301永久重定向。 可以从开发者语言中看network。
记住:传参时一般写在‘’中,而执行页面时,在路由输入时,不要写‘’
5.关于响应(Reponse)
以下都是可以的,除了 return ([‘python’,‘JAVA’])
因为元组只传第一个参数,另一个应该会出现在network中,不会显示的。
6. flask模板渲染和模板传参
前端代码显示,受后端代码控制和限制。所以需要用到flask模板
一般前后端分离,效率高,也比较精
flask 模板
可以在pycharm左侧
创建文件夹,把所有前端文件,要做的模板等全部放进去,以后调用时,注意要写目录。
比如下方,如果demo文件也放在了pycharm的demo文件夹下面,那么代码就要写成“demo/demo.html”
flask 模板传参
同样,沿用上面那张程序代码图
构造context方法
然后总不能传那么多参数吧,所以用**context, 我们以前学过 *arges等,不就是类似拆包吗。
注意列表的两种取值方式都可以实现。