下面是详细的"Python之Django路由和视图案例教程"的完整攻略及两条示例说明.
Django路由定义了请求URL与视图函数之间的映射关系,是实现RESTful架构的重要组成部分.
url()函数是Django用来声明URL映射关系的函数.它的原型是:
url(regex, view, kwargs=None, name=None)
其中,regex表示URL的匹配模式,view表示对应的视图函数,kwargs是传递给视图函数的参数,name是该URL的名称,方便在视图函数或模板中使用.
path()函数是Django提供的新的URL映射函数,它相比url()函数更加简洁易用.其原型为:
path(route, view, kwargs=None, name=None)
其中,route表示URL的匹配模式,view表示对应的视图函数,kwargs是传递给视图函数的参数,name是该URL的名称,方便在视图函数或模板中使用.
例1:匹配单个URL
当用户访问http://example.com/myapp/ 时,Django应该调用myapp.views.index函数来处理该请求.
使用url()函数实现:
from django.conf.urls import url
from myapp import views
urlpatterns = [
url(r'^$', views.index, name='index'),
]
使用path()函数实现:
from django.urls import path
from myapp import views
urlpatterns = [
path('', views.index, name='index'),
]
当用户访问http://example.com/myapp/list/ 时,Django应该调用myapp.views.list函数来处理该请求;当用户访问http://example.com/myapp/detail/1/ 时,Django应该调用myapp.views.detail函数来处理该请求.
from django.conf.urls import url
from myapp import views
urlpatterns = [
url(r'^detail/(?P\d+)/$', views.detail, name='detail'),
]
from django.urls import path, re_path
from myapp import views
urlpatterns = [
re_path(r'^detail/(?P\d+)/$', views.detail, name='detail'),
]
Django视图处理请求并返回响应.视图可以定义为函数或类.
函数视图是定义为函数的视图.
类视图是定义为类的视图.
类视图常见的有以下几种:
TemplateView:渲染模板响应视图.
ListView:渲染列表响应视图.
DetailView:渲染详情响应视图.
FormView:处理表单响应视图.
例1:函数视图
from django.http import HttpResponse
def index(request):
return HttpResponse('Hello World')
使用TemplateView渲染index.html模板响应视图.
from django.views.generic import TemplateView
class IndexView(TemplateView):
template_name = 'index.html'
使用ListView渲染article_list.html模板响应视图,用于显示文章列表.
from django.views.generic import ListView
from myapp.models import Article
class ArticleListView(ListView):
paginate_by = 10
以上就是土嘎嘎小编为大家整理的python之django路由和视图案例教程相关主题介绍,如果您觉得小编更新的文章只要能对粉丝们有用,就是我们最大的鼓励和动力,不要忘记讲本站分享给您身边的朋友哦!!