如何在 Django 中使用 CreateView?

本教程将提供如何在 django 中使用 createview 的示例。
本教程将为您提供如何在 django 中使用基于类的视图的简单示例。
我通过示例简单地解释了如何在 django 中使用 createview。
您将学习基于 django createview 类的视图示例。

与基于函数的视图相比,基于 Django 类的视图管理起来更简单、更高效。具有大量代码行的基于函数的视图可以转换为仅包含几行代码的基于类的视图。

在本例中,CreateView是一个类视图,可帮助您显示带有验证错误的模型表单并保存对象。

让我们看看下面的例子,你将学习如何在 django 中使用 createview。

第 1 步:创建项目

在这一步中,我们将使用 django-admin 创建一个新的 django 项目。返回命令行界面并运行以下命令:

django-admin startproject example 

第 2 步:创建应用程序

现在我们将创建一个名为core的应用程序来存储帖子名称列表。我们有意保持基本。使用Control+c停止本地服务器并使用startapp命令创建这个新应用程序。

python3 manage.py startapp core 

第三步:更新setting.py

接下来,在我们的settings.py文件中更新INSTALLED_APPS以通知 Django 该应用程序。

接下来需要在settings.py文件中添加如下:
setting.py

....
INSTALLED_APPS = [
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    'core',
]

第 4 步:创建模型

在这一步中,我们将需要用于在文章表中存储文章详细信息的数据库模型。打开 models.py 文件并添加以下代码:
core/models.py

from django.db import models

class Article(models.Model):
    title= models.CharField(max_length=300)
    content= models.TextField()
    pub_date = models.DateTimeField(auto_now_add= True)

好的,一切就绪。我们可以为此更改生成一个迁移文件,然后通过 migrate 将其集成到我们的数据库中。

python manage.py makemigrations 
python manage.py migrate 

第 5 步:创建表单

在这一步中,我们需要创建一个将被使用的表单。比如添加一个引导类和验证等。此外,我们还需要添加自定义样式。
core/forms.py

from django import forms
from .models import *

class ArticleForm(forms.ModelForm):
    title = forms.CharField(
        widget=forms.TextInput(
            attrs={
                'class':'form-control',
                "placeholder": "Title",
            }
        ),error_messages={'required': 'The Title is required.'})
    content = forms.CharField(
        widget=forms.Textarea(
            attrs={
                'rows': 5,
                'class':'form-control',
                "placeholder": "Content",
            }
        ),error_messages={'required': 'The Content is required.'})

    class Meta:
        model = Article
        fields = ['title','content',]

第 6 步:创建视图

在这一步中,我们需要配置我们的视图。ArticleCreateView页面将模板和定义 form_class 和Article模型,打开views.py文件并添加: core/models.py

from django.shortcuts import render
from django.views.generic.edit import CreateView
from .forms import *
from .models import *

class ArticleCreateView(CreateView):
    model = Article
    form_class = ArticleForm
    template_name = 'article.html'
    success_url = "/create"

第 7 步:创建模板

接下来,然后使用您的文本编辑器创建新的模板文件:core/templates/article.html文件并添加: core/templates/article.html

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Tuts-Station.com</title>
    <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap@4.6.1/dist/css/bootstrap.min.css">
    <style type="text/css">
        body{
            background-color: #f7fcff;
        }
    </style>
</head>
<body>
    <div class="container mt-5 pt-5">
        <div class="row d-flex justify-content-center">
            <div class="col-md-8">
                <div class="card">
                    <div class="card-header">
                        <h4>how to use CreateView in Django? - <span class="text-primary">Tuts-Station.com</span></h4>
                    </div>
                    <div class="card-body">
                        <form method = "post" enctype="multipart/form-data">
                            {% csrf_token %}
                            {{ form.as_p }}
                            <button type="submit" class="btn btn-success">Submit</button>
                        </form>
                    </div>
                </div>
            </div>
        </div>
    </div>
</body>
</html>

第 8 步:创建 URL

在本节中,我们需要核心应用程序中的urls.py文件,但是 Django 不会使用 startapp 命令为我们创建一个。使用您的文本编辑器创建core/urls.py,在此文件中,我们将为每个文件导入尚未创建的函数—— ArticleCreateView注意,我们为每个文件设置了一个可选的 URL 名称。

这是它的样子:
core/urls.py

from django.urls import path
from .views import ArticleCreateView

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

接下来,我们需要为我们的示例应用程序添加一个 URL 路径,这可以通过导入 include 并为其设置路径来完成。
example/urls.py

from django.contrib import admin
from django.urls import path, include

urlpatterns = [
    path('admin/', admin.site.urls),
    path('', include('core.urls')),
]

运行服务器

在这一步中,我们将运行本地开发服务器来玩我们的应用程序,而无需将其部署到网络上。

 python manage.py runserver 

接下来,使用 Web 浏览器访问 http://localhost:8000/create 地址。

Django 管理界面:

我希望它会帮助你……

发表评论

邮箱地址不会被公开。 必填项已用*标注