创建视图是指在数据库中创建表实例的视图(逻辑)。我们已经在中讨论了创建视图的基础创建视图–基于函数的视图Django。基于类的视图提供了一种将视图实现为Python对象而非函数的替代方法。它们不能代替基于功能的视图, 但是与基于功能的视图相比具有某些区别和优点:
- 与特定的HTTP方法(GET, POST等)相关的代码组织可以通过单独的方法而不是条件分支来解决。
- 诸如mixin(多重继承)之类的面向对象技术可用于将代码分解为可重用组件。
与基于函数的视图相比, 基于类的视图更易于管理。具有大量代码行的基于函数的视图可以转换为仅包含几行代码的基于类的视图。这就是面向对象编程的影响。
Django创建视图–基于类的视图
的插图如何创建和使用创建视图用一个例子。考虑一个名为极客有一个名为极客.
请参阅以下文章, 以检查如何在Django中创建项目和应用。如何在Django中使用MVT创建基本项目?如何在Django中创建应用程序?
在拥有一个项目和一个应用程序之后, 让我们创建一个模型, 我们将通过我们的视图创建该模型。在怪胎/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
基于类的视图会自动设置从A到Z的所有内容。只需指定要为其创建创建视图的模型和字段。然后基于Class的CreateView将自动尝试在其中查找模板app_name/modelname_form.html。在我们的情况下是geeks/templates/geeks/geeksmodel_form.html。让我们创建基于类的视图。在geeks/views.py,
from django.views.generic.edit import CreateView
from .models import GeeksModel
class GeeksCreate(CreateView):
# specify the model for create view
model = GeeksModel
# specify the fields to be displayed
fields = [ 'title' , 'description' ]
现在创建一个URL路径以映射视图。在geeks/urls.py中,
from django.urls import path
# importing views from views..py
from .views import GeeksCreate
urlpatterns = [
path('', GeeksCreate.as_view() ), ]
在中创建模板template/geeks/geeksmodel_form.html,
<form method = "POST" enctype = "multipart/form-data">
<!-- Security token -->
{% csrf_token %}
<!-- Using the formset -->
{{ form.as_p }}
<input type = "submit" value = "Submit">
</form>
让我们检查一下
http://本地主机:8000 /
现在, 让我们尝试以这种形式输入数据,
答对了。!创建视图正在运行, 我们可以使用通过管理面板创建的实例进行验证。
这样, 就可以在Django中为模型创建创建视图。
首先, 你的面试准备可通过以下方式增强你的数据结构概念:Python DS课程。