应用中的 views.py 是 Django MTV 架构中的 V,主要负责处理用户请求和生成相应的响应内容返回到前端,然后在 HTML 或者其他类型文档中渲染、显示。
在 django_urls_views 项目中使用命令行创建一个新的应用 quebec
python3 manage.py startapp quebec
并在 settings.py 中的 INSTALLED_APPS
中注册该应用
在 quebec 应用下的 views.py 中新增视图函数 zulu,该函数有一个 request
参数,并返回一个字符串 Zulu
,HttpResponse 可以用来返回字符串,render 则是用来返回一个页面。
from django.shortcuts import render, HttpResponse
def zulu(request):
return HttpResponse('Zulu')
在 quebec 应用中增加urls.py,定义 zulu 函数的路由
from django.urls import path
from .views import zulu
urlpatterns = [
path('zulu/', zulu),
]
将应用中的 urls 与主 urls 进行绑定
# 其余代码保持不变
from xray import urls as xray_urls
from quebec import urls as quebec_urls
urlpatterns = [
path('admin/', admin.site.urls),
path('xray/', include(xray_urls)),
path('quebec/', include(quebec_urls))
]
启动应用,浏览器访问 /quebec/zulu/
页面显示的内容符合预期
一个视图函数可以看作由三个部分组成,
用户的请求 request
浏览器向服务发送的请求在 Django 中是一个 request 对象,该兑现更包含了用户的信息、请求内容和请求方法,且视图函数中必须要包含一个实例化的 request 对象作为视图函数的参数,否则会报错。
request 对象的常用方法有:
可以通过 dir 函数查看 request 对象的所有方法
用户的响应 response HttpResponse 可以直接返回字符串内容,而 render 函数则会将上下文中存放的数据在指定的模板中进行渲染。
JsonResponse 返回一个 json 类型,通常用于与前端通过 Ajax 进行交互。
Django 中的视图类 Django 中支持视图类写法,视图类要继承 View 类,并通过定义 get 方法和 post 方法来处理前端发来的 GET 请求和 POST 请求,而不用向视图函数那样要先通过 request 对象的 method 方法判断 GET 请求还是 POST 请求。
在 views.py 中定义一个实体类 Whiskey 类,继承 View 类,定义 get 函数处理 GET 请求
from django.views import View
class Whiskey(View):
def get(self, request):
return HttpResponse('Class View Whiskey!')
在 quebec 应用下的 urls.py 中定义视图类的路由。
path('whiskey/', views.Whiskey.as_view())
启动应用,在浏览器中访问 /quebec/whiskey/
RESTFUL是一种网络应用程序的设计风格和开发方式,基于HTTP,可以使用XML格式定义或JSON格式定义。RESTFUL适用于移动互联网厂商作为业务接口的场景,实现第三方OTT调用移动网络资源的功能,动作类型为新增、变更、删除所调用资源。
REST 指的是一组架构约束条件和原则。满足这些约束条件和原则的应用程序或设计就是 RESTful。
互联网所有的事务都可以被抽象为资源,例如:.txt .html .jpg .mp3 .mp4等,RESTful 架构风格就是围绕资源展开的,资源操作都是统一接口的:
RESTful 风格使使请求路径变得更加简洁,传递、获取参数值更加方便,并且框架会自动进行类型转换。