📜  创建视图——基于函数的视图 Django

📅  最后修改于: 2022-05-13 01:54:59.663000             🧑  作者: Mango

创建视图——基于函数的视图 Django

创建视图是指在数据库中创建表的实例的视图(逻辑)。这就像从用户那里获取输入并将其存储在指定的表中一样。 Django 为 Create Views 提供了非凡的支持,但让我们检查一下它是如何通过基于函数的视图手动完成的。本文围绕 Create View 展开,其中涉及 Django Forms、Django Models 等概念。
对于创建视图,我们需要一个包含一些模型和表单的项目,这些模型和表单将用于创建该模型的实例。

Django 创建视图——基于函数的视图

如何使用示例创建和使用创建视图的说明。考虑一个名为geeks的项目,它有一个名为geeksforgeeks的应用程序。

在你有一个项目和一个应用程序之后,让我们创建一个模型,我们将通过我们的视图创建它的实例。在geeks/models.py中,

# import the standard Django Model
# from built-in library
from django.db import models
   
# declare a new model with a name "GeeksModel"
class GeeksModel(models.Model):
  
    # fields of the model
    title = models.CharField(max_length = 200)
    description = models.TextField()
  
    # renames the instances of the model
    # with their title name
    def __str__(self):
        return self.title

创建此模型后,我们需要运行两个命令才能为其创建数据库。

Python manage.py makemigrations
Python manage.py migrate

现在我们将为这个模型创建一个 Django ModelForm。有关 modelform 的更多信息,请参阅本文 – Django ModelForm – 从模型创建表单。在 geeks 文件夹中创建文件forms.py

from django import forms
from .models import GeeksModel
  
  
# creating a form
class GeeksForm(forms.ModelForm):
  
    # create meta class
    class Meta:
        # specify model to be used
        model = GeeksModel
  
        # specify fields to be used
        fields = [
            "title",
            "description",
        ]

现在我们已经为后端做好了一切准备。让我们为其创建一个视图和模板。在geeks/views.py中,

from django.shortcuts import render
  
# relative import of forms
from .models import GeeksModel
from .forms import GeeksForm
  
  
def create_view(request):
    # dictionary for initial data with 
    # field names as keys
    context ={}
  
    # add the dictionary during initialization
    form = GeeksForm(request.POST or None)
    if form.is_valid():
        form.save()
          
    context['form']= form
    return render(request, "create_view.html", context)

templates/create_view.html中创建模板,

            {% csrf_token %}             {{ form.as_p }}            

让我们检查一下 http://localhost:8000/ 上有什么
django-create-view-function-based

现在让我们尝试以这种形式输入数据,
创建视图功能输入数据

答对了。!创建视图正在工作,我们可以使用通过管理面板创建的实例来验证它。
django-mopdel-created-create-view
这样就可以在 Django 中为模型创建创建视图。