HttpRequest对象
HTTP协议向服务器传参有4种途径:
1、提取 URL 的特定部分,如 /weather/beijing/2019,可以在服务器端的路由中用正则表达式截取;
2、查询字符串(query string),形如 key1=value1&key2=value2;
3、请求体(body)中发送的数据,比如表单数据: json 、 xml;
4、在 http 报文的头 (header)中。
URL 传递数据
举个例子(用编号代替城市 和 某家连锁店,显示店铺的详情页):
views.py 写着:
def shop(request, city_id, shop_id):
print(city_id)
print(shop_id)
return HttpResponse('饭馆')
urls.py 写着:
path('<city_id>/<shop_id>', views.shop)
浏览器网址写着:
127.0.0.1:8000/123/567
浏览器得到的结果是:
饭馆
后台显示:
123
567
流程:用户输入地址,路由匹配,获取模型
查询字符串
http://ip:port/path/path/?key=value&key1=value1
url 以问号? 分为 2部分:前边是请求路径,后面是查询字符串
这时需要 request.GET 接收数据
举个例子:
客户输入网址:
http://127.0.0.1:8000/123/456/?order=readcount&page=1&order=commentcount