Django Views 视图和 Restful 接口四
4. views 视图
4.1 视图组成
-
视图通常分为三个部分
- 用户使用浏览器向网站发送请求 request
- 对用户的请求做出相应的处理 handler
- 将处理后的数据返回给浏览器 response
4.2 request 方法
-
常用的 request 对象方法
- request.GET 获取 url 以 ? 形式的参数
- request.POST 获取 post 提交的数据
- request.path 获取 path 请求的路径 (127.0.0.1/test/1 那么这个值就是 /test/1)
- request.method 请求的方法(get post)
- request.COOKIES 请求过来的 cookies
- request.user 请求的永辉对象,可以判断用户是否登录,获取用户信息
- request.session 一个即可读又可写的类似于字典的对象,表示当前会话
- request.META 一个标准的 python 字典,包含所有的 HTTP 部首,具体的头部信息取决于客户端和服务器
4.3 返回对象
-
常用的返回对象
- HttpResponse 可以直接返回一些字符串内容
- render 将数据在模板中渲染并显示 返回一个 html 页面
- JsonResponse 返回一个 json 类型,通常用于 ajax 交互
from django.http import HttpResponse
from django.shortcuts import render
from django.http import JsonResponse
def index_str(request):
return HttpResponse('hello word')
def index_html(request):
return render(request, 'index.html')
def index_json(request):
user_dict = {'user': '王', 'password': 123456}
return JsonResponse(user_dict, json_dumps_params={'ensure_ascii': False})
# 使用 json 模块来返回 json 格式的数据
import json
def test_json(request):
user_dict = {'user': '王', 'password': 123456}
# ensure_ascii=True会将中文转换为编码 {"user": "\u738b", "password": 123456}
json_str = json.dumps(user_dict, ensure_ascii=False)
return HttpResponse(json_str)
前端序列化
- 前后端方法对应
JSON.stringify() - json.dumps() 字符串转换为 json
JSON.parse() - json.loads() 解析 json 为字符串
方法 | 作用 |
---|---|
json.dumps() | 将 python 对象编码成 Json 字符串 |
json.loads() | 将 Json 字符串解码成python对象 |
json.dump() | 将 python 中的对象转化成 json 储存到文件中 |
json.load() | 将文件中的 json 的格式转化成 python 对象提取出来 |
方法 | 作用 |
---|---|
JSON.stringify() | 将 JavaScript 对象转换为 JSON 字符串 |
JSON.parse() | 将数据转换为 JavaScript 对象 |
4.4 视图面向对象
- View 配置
from django.shortcuts import render
from django.views import View // 导入 View 包
// 继承 View
class Test(View):
def get(self, request):
return render(request, 'index.html')
- urls.py 配置
from django.urls import path
from .views import Test // 导入 Test
urlpatterns = [
path('index/', Test.as_view()) // as_view() 注册路由
]
5. Restful 接口规范
5.1 Restful
url 定位资源,简单来说,通过一个 url 地址可以让我们知道这个地址所提供的功能是什么?
1. 127.0.0.1/add/user 那么可以看出这个 url 要做的事情就是 添加一个用户
2. 127.0.0.1/get/user/1 获取一个用户并且这个用户的 id 是 1
归纳一句话: url 一切皆资源
5.2 Restful 常用方法
Get 获取资源时使用比如我们查看一个网页
Post 提交资源时使用比如我们注册一个用户的时候
Put 修改资源时时候比如我们修改自己的用户信息的时候
Delete 删除资源时使用比如我们注销我们的账号的时候
5.3 Http 协议
网上应用最为广泛的一种网络协议,所有的www文件都必须遵守这个标准
5.4 Http 的无状态性
无状态是指,当浏览器发送请求给服务器的时候,服务器响应客户端请求,但是当同一个浏览器再次给你服务器发送请求的时候,服务器并不知道它就是刚才那个浏览器。
简单的说,服务器不会记得你,所以就是无状态协议
5.5 Http 常用状态码
200 成功
400 请求错误,一般是参数格式有误的时候出现403禁止访间
404 没有获取到 url 地址
405 方法禁用,比如这个地址指定用 get 方法,但你用了 post,就会有这个提示
500 服务器异常
这篇好文章是转载于:学新通技术网
- 版权申明: 本站部分内容来自互联网,仅供学习及演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,请提供相关证据及您的身份证明,我们将在收到邮件后48小时内删除。
- 本站站名: 学新通技术网
- 本文地址: /boutique/detail/tanhhahcaj
系列文章
更多
同类精品
更多
-
生日快乐SpringBoot SpringBoot 基础篇(第一篇) 第4章 SpringBoot 综合案例 4.1 RESTful
-
swagger, swag, gin-swagger:间的关系
-
RPCRemote Procedure Call服务调用和 RESTfulRepresentational State Transfer资源通信协议异同常见RPC和RESTful框架
-
Flask 学习-36.Flask-RESTful 序列化输出对象
-
SpringMvc图片上传,JSON数据交换,RESTful风格
-
Spring boot 整合 JPA 保存数据和Spring boot 使用 JdbcTemplate 保存数据
-
photoshop保存的图片太大微信发不了怎么办
PHP中文网 06-15 -
《学习通》视频自动暂停处理方法
HelloWorld317 07-05 -
word里面弄一个表格后上面的标题会跑到下面怎么办
PHP中文网 06-20 -
Android 11 保存文件到外部存储,并分享文件
Luke 10-12 -
photoshop扩展功能面板显示灰色怎么办
PHP中文网 06-14 -
微信公众号没有声音提示怎么办
PHP中文网 03-31 -
excel下划线不显示怎么办
PHP中文网 06-23 -
excel打印预览压线压字怎么办
PHP中文网 06-22 -
TikTok加速器哪个好免费的TK加速器推荐
TK小达人 10-01 -
怎样阻止微信小程序自动打开
PHP中文网 06-13