Login
网站首页 > 文章中心 > 其它

python之django路由和视图案例教程

作者:小编 更新时间:2023-08-17 13:52:19 浏览量:325人看过

下面是详细的"Python之Django路由和视图案例教程"的完整攻略及两条示例说明.

python之django路由和视图案例教程-图1

Django路由定义了请求URL与视图函数之间的映射关系,是实现RESTful架构的重要组成部分.

1.1 url()函数

url()函数是Django用来声明URL映射关系的函数.它的原型是:

url(regex, view, kwargs=None, name=None)

其中,regex表示URL的匹配模式,view表示对应的视图函数,kwargs是传递给视图函数的参数,name是该URL的名称,方便在视图函数或模板中使用.

1.2 path()函数

path()函数是Django提供的新的URL映射函数,它相比url()函数更加简洁易用.其原型为:


python之django路由和视图案例教程-图2

path(route, view, kwargs=None, name=None)

其中,route表示URL的匹配模式,view表示对应的视图函数,kwargs是传递给视图函数的参数,name是该URL的名称,方便在视图函数或模板中使用.

1.3 示例说明

例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视图处理请求并返回响应.视图可以定义为函数或类.

2.1 函数视图

函数视图是定义为函数的视图.

2.2 类视图

类视图是定义为类的视图.

类视图常见的有以下几种:

TemplateView:渲染模板响应视图.

ListView:渲染列表响应视图.

DetailView:渲染详情响应视图.

FormView:处理表单响应视图.

2.3 示例说明

例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路由和视图案例教程相关主题介绍,如果您觉得小编更新的文章只要能对粉丝们有用,就是我们最大的鼓励和动力,不要忘记讲本站分享给您身边的朋友哦!!

版权声明:倡导尊重与保护知识产权。未经许可,任何人不得复制、转载、或以其他方式使用本站《原创》内容,违者将追究其法律责任。本站文章内容,部分图片来源于网络,如有侵权,请联系我们修改或者删除处理。

编辑推荐

热门文章