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

yizhihongxing

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

1. Django路由

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()函数更加简洁易用。其原型为:

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'),
]

例2:匹配多个URL

当用户访问http://example.com/myapp/list/ 时,Django应该调用myapp.views.list函数来处理该请求;当用户访问http://example.com/myapp/detail/1/ 时,Django应该调用myapp.views.detail函数来处理该请求。

使用url()函数实现:

from django.conf.urls import url
from myapp import views

urlpatterns = [
    url(r'^list/$', views.list, name='list'),
    url(r'^detail/(?P<id>\d+)/$', views.detail, name='detail'),
]

使用path()函数实现:

from django.urls import path, re_path
from myapp import views

urlpatterns = [
    path('list/', views.list, name='list'),
    re_path(r'^detail/(?P<id>\d+)/$', views.detail, name='detail'),
]

2. Django视图

Django视图处理请求并返回响应。视图可以定义为函数或类。

2.1 函数视图

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

2.2 类视图

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

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

  • TemplateView:渲染模板响应视图。
  • ListView:渲染列表响应视图。
  • DetailView:渲染详情响应视图。
  • FormView:处理表单响应视图。

2.3 示例说明

例1:函数视图

定义函数视图myapp.views.index,用来处理首页请求,返回一个包含"Hello World"字样的响应。

from django.http import HttpResponse

def index(request):
    return HttpResponse('Hello World')

例2:类视图

使用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):
    model = Article
    template_name = 'article_list.html'
    context_object_name = 'article_list'
    paginate_by = 10

以上就是“Python之Django路由和视图案例教程”的完整攻略及两条示例说明。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:python之django路由和视图案例教程 - Python技术站

(0)
上一篇 2023年5月16日
下一篇 2023年5月16日

相关文章

  • django orm操作(1)

    MVC或者MVC框架中包括一个重要的部分,就是ORM,它实现了数据模型与数据库的解耦,即数据模型的设计不需要依赖于特定的数据库,通过简单的配置就可以轻松更换数据库,这极大的减轻了开发人员的工作量,不需要面对因数据库变更而导致的无效劳动 ORM是“对象-关系-映射”的简称。 View Code 回到顶部 单表操作 创建表 1  创建模型 创建名为book的ap…

    Django 2023年4月13日
    00
  • django基础知识之HTML转义:

    Django对字符串进行自动HTML转义,如在模板中输出如下值: 视图代码: def index(request): return render(request, ‘temtest/index2.html’, { ‘t1’: ‘<h1>hello</h1>’ }) 模板代码: {{t1}} 显示效果如下图: 会被自动转义的字符 htm…

    Django 2023年4月12日
    00
  • Django 外键的使用方法详解

    Django 外键的使用方法详解 在 Django 中,外键是一种非常重要的关系型字段,它可以用于表之间的关联,方便数据的操作和查询。本文将详细讲解 Django 外键的使用方法,包括什么是外键、外键的类型、外键的创建和使用,以及外键的常见问题解决。 什么是外键 外键是一种关系型字段,它用来在两个表之间建立关联。通过外键字段,我们可以将一张表中的数据和另一张…

    Django 2023年5月16日
    00
  • django框架学习:十九.admin后台表名称和字段显示中文

    如下图所示,生成数据库表格后,admin后台生成表名称会自动多一s,如果想让表名称,以及表格里的字段名中文显示,django里就需要添加verbose_name 和verbose_name_plural属性。        verbose_name 用法 如下图所示,如果想让表的字段名称显示为中文,需要在models.py文件添加verbose_name  …

    2023年4月10日
    00
  • 杂记:Django和static,Nginx配置路径,json_schema

    前记:知识无处不在,要懂得珍惜,找到适合自己的方法高效地学习有价值的知识,不念过去,不畏将来。 Django对待静态资源,在非前后端分离时的常识 Django会对项目app下的static文件夹的静态资源进行收集,同名则按优先级指向,要自己加资源可以在settings.py的STATICFILES_DIRS进行额外指定,STATIC_URL=‘/static…

    Django 2023年4月10日
    00
  • 详解Python的Django框架中的模版相关知识

    详解Python的Django框架中的模版相关知识 Django 是一个优秀的 Python Web 框架,内置了强大的模版引擎,方便开发者快速创建 Web 应用。本文将详细讲解 Django 中与模版相关的知识,包括模版的语法、模版继承和自定义模版标签等内容。同时,本文将提供两个示例来说明 Django 模版相关知识的应用。 模版的语法 Django 模版…

    Django 2023年5月16日
    00
  • Django(六)模型(model)系统 — 常用查询语法及进阶

    必知必会13条 <1> all(): 查询所有结果 <2> filter(**kwargs): 它包含了与所给筛选条件相匹配的对象 <3> get(**kwargs): 返回与所给筛选条件相匹配的对象,返回结果有且只有一个,如果符合筛选条件的对象超过一个或者没有都会抛出错误。 <4> exclude(**kwa…

    Django 2023年4月11日
    00
  • python-num18 - django进阶一

    一。深入django的路由系统 下面为django的请求生命周期   下面来看下整个生命周期中的路由系统: 在Django的urls中我们可以根据一个URL对应一个函数名来定义路由规则如下: “””mysite_django URL Configuration The `urlpatterns` list routes URLs to views. For …

    2023年4月9日
    00
合作推广
合作推广
分享本页
返回顶部