在Python的Django框架中使用通用视图的方法

使用通用视图是Django框架中的一种常见方式来快速生成视图。本文将详细介绍在Python的Django框架中使用通用视图的方法。

一、通用视图简介

Django框架中,每个视图都必须返回一个HttpResponse对象或一个异常。使用通用视图可以让我们使用已经定义好的视图来快速生成视图实例。

通用视图被分成以下几种类型:

  • ListView:处理显示一个对象列表的视图。
  • DetailView:处理显示一个对象详情的视图。
  • CreateView:处理处理对象创建任务的视图。
  • UpdateView:处理对象更新任务的视图。
  • DeleteView:处理对象删除任务的视图。

二、使用通用视图

通用视图要用到两个模块:viewsurls。views模块定义通用视图,urls模块定义URL路由。

以ListView为例,以下是一个简单的示例:

1.编写视图

from django.views.generic.list import ListView
from .models import Article

class ArticleListView(ListView):
    model = Article
    template_name = 'article_list.html'
    context_object_name = 'articles'

让我们详细解释一下这个视图类:

  • 继承自django.views.generic.list.ListView,它实现了列表展示的逻辑。

  • model属性指定从哪个模型中获取数据,这个数据将存放在articles的变量中。

  • template_name属性指定使用哪个模板来渲染页面。

  • context_object_name属性指定在模板中使用哪个变量来渲染数据。

2.编写模板

我们需要为上面的视图类编写一个模板。在本示例中,模板名为article_list.html

{% for article in articles %}
    <div>
        <h2>{{ article.title }}</h2>
        <p>{{ article.content }}</p>
    </div>
{% endfor %}

这个模板中我们使用了一个简单的for循环,用来遍历保存在articles变量中的查找结果。

3.为视图类指定URL

要在urls中定义URL路由,让它指向我们上面定义的ArticleListView类。

from django.urls import path
from .views import ArticleListView

urlpatterns = [
    path('', ArticleListView.as_view(), name='article_list')
]

在这个例子中,我们给视图类设置了一个名为article_list的别名。

三、另一个示例

以CreateView为例,以下是另一个简单的示例:

1. 编写视图

from django.views.generic.edit import CreateView
from .models import Article

class ArticleCreateView(CreateView):
    model = Article
    fields = ['title', 'content']
    template_name = 'article_create.html'

这个视图类继承自Django中的CreateView类。它用于处理创建新数据的视图。

  • model属性指定使用哪个模型。

  • fields属性指定生成那些表单字段(titlecontent)。

  • template_name属性指定使用哪个模板文件。

2. 编写模板

我们需要为上面的视图编写一个模板。在本示例中,模板名为article_create.html

<form method="post">
    {% csrf_token %}
    {{ form.as_p }}
    <button type="submit">Save</button>
</form>

这个模板展示一个HTML表单,该表单包含根据视图类的fields属性自动生成的表单元素。

3. 为视图类指定URL

为视图类指定URL route。

from django.urls import path
from .views import ArticleCreateView

urlpatterns = [
    path('create/', ArticleCreateView.as_view(), name='article_create')
]

在这个示例中,我们提供了article_create的名称,这是我们用于在项目其他地方引用此URL访问路径的名称。

四、小结

通用视图是Django框架中一种快速生成视图的强大工具。本文介绍了使用ListView和CreateView的两个示例。使用本文提供的代码和模板、视图、URL路由等描述,可以在Django框架中使用通用视图生成适合自己的视图。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:在Python的Django框架中使用通用视图的方法 - Python技术站

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

相关文章

  • 利用Pycharm + Django搭建一个简单Python Web项目的步骤

    下面是利用Pycharm + Django搭建一个简单Python Web项目的步骤的完整攻略: 1. 安装Pycharm和Django 首先需要在官网下载并安装最新版本的Pycharm和Django,可以通过Pycharm自带的插件来安装Django。 2. 创建Pycharm项目 打开Pycharm软件,点击顶部菜单栏的”File“选项,选择“New P…

    Django 2023年5月16日
    00
  • Django框架视图介绍与使用详解

    下面是对“Django框架视图介绍与使用详解”的完整攻略。 Django框架视图介绍与使用详解 什么是Django视图 Django中的视图是一个Python函数或类,它接收HTTP请求并返回HTTP响应。视图的作用是将请求中的数据进行处理,然后通过模板或其他响应方式将其呈现给用户。 Django视图的类型 在Django中,视图大体上可以分为两种类型:函数…

    Django 2023年5月15日
    00
  • django rest_framework中的mixins,generics,ModelViewSet中的url简写

    models.py from django.db import models class UserInfo(models.Model): name = models.CharField(max_length=32) pwd = models.CharField(max_length=32) class UserToken(models.Model): tok…

    Django 2023年4月11日
    00
  • django 静态资源配置

    最近在学习一个项目,django框架,但当 render 模板时,模板里有引入的图片就访问不到, 这是因为 django部署方式比较特别,采用静态文件路径:STATICFILES_DIRS的部署方式,之前你写的相对路径,绝对路径因为缺少静态文件路径而全部失效 解决办法: 步骤1:在settings.py文件的最后加上以下内容: STATIC_URL = ‘/…

    Django 2023年4月11日
    00
  • Django中图片不显示

    很多教程没教对,导致Django中的图片不能正确的显示出来,经过多次踩坑,发现如下方法可以解决该问题。 1.setting.py中添加: STATIC_URL = ‘/static/’ STATICFILES_DIRS=[ os.path.join(BASE_DIR,’static’).replace(‘\\’,’/’) ] 注意在这里BASE_DIR在se…

    Django 2023年4月12日
    00
  • 在Django中使用logging模块

    一、Django logging配置 1、在setting.py中配置 # 日志文件存放路径 BASE_LOG_DIR = os.path.join(BASE_DIR, “log”) # Logging配置 LOGGING = { ‘version’: 1, # 保留字 ‘disable_existing_loggers’: False, # 是否禁用Dja…

    Django 2023年4月16日
    00
  • Django在Win7下的安装及创建项目hello word简明教程

    下面我就为你详细讲解“Django在Win7下的安装及创建项目hello word简明教程”的完整攻略。 安装Django 安装Python:下载安装Python 3.x 版本,安装完成后记得勾选“Add Python to PATH”选项。 安装Django:在命令行界面(CMD)输入以下命令进行安装:pip install django 测试是否安装成功…

    Django 2023年5月16日
    00
  • Django JWT登录认证机制

    Django REST framework JWT 在用户注册或登录后,我们想记录用户的登录状态,或者为用户创建身份认证的凭证。我们不再使用Session认证机制,而使用Json Web Token认证机制。 很多公司开发的一些移动端可能不支持cookie,并且我们通过cookie和session做接口登录认证的话,效率其实并不是很高,我们的接口可能提供给多…

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