现在我们来到了flask教程的第四章,这一章我们来学习一下如何处理用户向flask传输的数据。

在开始学习之前,我先分享一下http请求中常见的两种方法,分别是GET和POST。

GET和POST方法

GET

GET顾名思义,即获取,通过url向服务端获取页面或数据,比如访问https://www.baidu.com,就是使用GET方法向服务器发起请求,获取百度的主页。

而GET方法要想向服务端传输数据就需要在url上操作,比如https://www.baidu.com/s?wd=felix,当访问这一个地址时,其中wd=felix就是传输的参数,百度的服务器获取到了这个参数,就会返回对应的搜索结果页。url中用?来分隔固定地址和动态参数,其中等号左边为参数名,右边为对应的值。

如果有多个参数的话,就通过&来分隔多个参数,例如https://www.baidu.com/s?wd=felix&ie=UTF-8,这个url就一次传输了两个参数,分别是wd=felix以及ie=UTF-8

而这个url中的参数有一个专门的名字,叫做查询字符串(Query String)

POST

POST方法一般专门用作于传输数据,相较于GET来说,POST会更加安全,不会将数据暴露在url上,所以一般在登陆功能或者提交较多数据时会使用POST方法。而且POST相较于GET方法来说,对于大小没有限制,所以可以传输更多的内容。

更多关于POST的细节将在下一篇的表单处理中分享,下面我们先来聊一聊如何在flask中处理查询字符串,即url中的参数吧。

flask处理查询字符串

在flask中,我们可以通过flask提供的request方法来获取url中的参数。

frog.py

from flask import request

@app.route('/post/')
def posts():
    page=request.args.get('page')
    return '<h1>%s</h1>' % page

我们可以通过request.args.get('参数名')来获得对应的参数,如果没有这个参数则返回None

接下来我们打开浏览器,在地址栏输入http://127.0.0.1:5000/post/?page=1,回车,我们就可以看到,页面返回的就是我们在url中输入的参数了。

是不是很简单呢?

查询字符串的应用场景

查询字符串在一些分页、搜索、简单查询页面时都会经常用到,它有一个特点就是变换频繁,灵活。

比如百度的搜索url就是这样的https://www.baidu.com/s?wd=felix

某个列表页的第二页

http://www.felixlee.cn/post/?page=2

某个搜索页

http://www.felixlee.cn/search?wd=关键词

以上便是关于flask处理查询字符串的一些介绍啦,之后我们会经常见到它,还是比较简单的。

拓展阅读

在很多php的项目上,常会有一个入口文件index.php,然后整个网站的所有操作和页面都可以基于这个入口文件的url搭配上一些参数来完成。

比如列表页可能是这种形式http://www.felixlee.cn/index.php?type=list&catid=1&page=1

文章页的url可能是这种形式https://www.felixlee.cn/index.php?type=show&id=1

然后再搭配上一些伪静态的规则可以生成我们一般常见的更加直观且对seo有利的静态地址。可以说php是使用查询字符串比较频繁的一种语言了。

那么我们下一篇再见吧。

评论

Felix 管理员

仓库地址: http://codemole.cn/felix/Frog/src/frog4.1

回复

  • 最新随笔

  • 对我来说,写东西很好的一点是,自己写的东西,后面基本都会再看,一遍或者很多遍。这样就可以很好地发现自己之前的漏洞,并看看现在有什么变化。
  • 前段时间应该是百度更新了页面结构,那个黑帽泛目录网站我也没有去更新代码,就导致了文章页没有相关推荐,没想到这时候谷歌开始收录了,而且效果还不错。其实之前在谷歌一直不收录的时候就有怀疑过没有尽头的相关推荐很可能是导致不收录的原因,不过也一直没有去管它,而这次误打误撞的收录也恰恰证实了这个想法。(btw,其实这个网站从出现固定链接开始叫泛目录应该不太准确)
  • 最近吉他谱网站iloveguitar上线了,这几天在填充一些内容花了一些时间,这个网站也是使用flask作为后端框架的,前端UI框架使用的是bootstrap4,喜欢吉他的小伙伴欢迎来这里逛一逛哟,有什么建议欢迎在留言板提一下哟。
  • 那个泛目录网站发布了几个星期了,百度没怎么来爬,收了一个首页,谷歌直接就不收了,倒是一个查外链的网站天天来爬(笑哭),还有建议一点就是泛目录还是用在有建站历史的域名比较好(因为已经过了审核期),新域名就尽量不要用了。
  • 刚刚又发了一篇,最近文章百度都不太收录,orz,哈哈
  • 之前那个用python做的静态资源服务器,我又发现了一大用处,现在我都用来在局域网里的不同电脑之间传输文件,真的好用哈哈
  • 今天交换到了博客有史以来第一条友情链接
  • 刚刚更新了一下博客,修复了一些bug,添加了一个项目页