Django REST框架构建Web API。Django网络应用开发的5项基础核心技术包括模型(Model)的设计,URL 的设计与配置,View(视图)的编写,Template(模板)的设计和Form(表单)的使用。
常见的http请求method,是get和post方式,除此之外还有head\option\delete\put\patch等方式。默认输入url的请求方式即为get,当请求方式为get时,若带有需要传递的其他参数,则会将该参数的name和value补充在url中一并提交,post方式则将数据放在内容中一并提交,不再url中显示。在浏览器发送的request数据包的header中,可以看到这些内容,例如:
视图里使用类处理请求,在url中一个路径对应一个类。
urlpatterns = [
url(r'^admin/', admin.site.urls),
url(r'^index/', views.IndexView.as_view()) # 执行类后面的as_view()方法,是父类里面的方法
]
视图函数
from django.views import View
from django.http import HttpResponse
class IndexView(View):
# 以get形式访问会执行get函数,一般情况下获取数据
def get(self, *args, **kwargs):
return HttpResponse('鼠年大吉')
# 以post形式访问的话会执行post函数,一般情况下发送数据
def post(self, *args, **kwargs):
return HttpResponse('万事顺心')
'get'获取数据;'post'创建新数据;'put'更新;'patch'局部更新;'delete'删除;
所有方法都是通过 dispatch 这个函数反射执行,要想在 get 或 post 方法前执行其它步骤,可以重写 dispatch。
class IndexView(View):
# 重写父类的dispatch方法,如果不重写,会执行父类的dispatch方法,
def dispatch(self, request, *args, **kwargs):
print('之前')
res = super(IndexView, self).dispatch(request, *args, **kwargs)
print('之后')
return res
# 以get形式访问会执行get函数,一般情况下获取数据
def get(self, *args, **kwargs):
return HttpResponse('鼠年大吉')
# 以post形式访问的话会执行post函数,一般情况下发送数据
def post(self, *args, **kwargs):
return HttpResponse('万事顺心')
二、FBV
视图里使用函数处理请求,在url中一个路径对应一个函数。
urlpatterns = [
url(r'^admin/', admin.site.urls),
url(r'^index/', views.index)
]
视图函数
def index(request):
return render(request, 'index.html')