本文概述
- Django查看范例
- 视图类型
- 基于功能的视图
- 基于类的视图
文章图片
Django查看范例 的插图如何创建和使用Django视图用一个例子。考虑一个名为极客有一个名为极客.
请参阅以下文章, 以检查如何在Django中创建项目和应用。如何在Django中使用MVT创建基本项目?如何在Django中创建应用程序?准备好项目后, 我们可以在geeks / views.py,
# import Http Response from django
from django.http import HttpResponse
# get datetime
import datetime# create a function
def geeks_view(request):
# fetch date and time
now = datetime.datetime.now()
# convert to string
html = "Time is {}" . format (now)
# return response
return HttpResponse(html)
让我们一次一行地浏览此代码:
- 首先, 我们导入类HttpResponse来自django.http模块, 以及Python的日期时间库。
- 接下来, 我们定义一个名为geeks_view的函数。这是视图功能。每个视图函数都将HttpRequest对象作为其第一个参数, 通常将其命名为request。
- 该视图返回一个HttpResponse对象, 该对象包含生成的响应。每个视图函数负责返回一个HttpResponse目的。
Django请求和响应周期– HttpRequest和HttpResponse对象
让这种观点发挥作用
怪胎/ urls.py
,
from django.urls import path# importing views from views..py
from .views import geeks_viewurlpatterns = [
path('', geeks_view), ]
现在, 访问
http://127.0.0.1:8000/
,
文章图片
要检查如何使用Django的MVT(模型, 视图, 模板)结构制作基本项目, 请访问创建一个项目Django.
视图类型 Django视图分为两个主要类别:
- 基于功能的视图
- 基于类的视图
文章图片
基于功能的视图 基于函数的视图使用python中的函数编写器, 该函数以HttpRequest对象作为参数并返回HttpResponse对象。基于功能的视图通常分为4种基本策略, 即CRUD(创建, 检索, 更新, 删除)。 CRUD是用于开发的任何框架的基础。
基于功能的视图示例–
让我们创建一个基于函数的视图列表视图以显示模型的实例。
让我们创建一个模型, 通过我们的视图创建实例。在
【Django中的视图如何使用(开发示例 | Python)】怪胎/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
现在, 让我们使用Shell创建该模型的一些实例, 运行表格bash,
Python manage.py shell
输入以下命令
>
>
>
from geeks.models import GeeksModel
>
>
>
GeeksModel.objects.create(
title="title1", description="description1").save()
>
>
>
GeeksModel.objects.create(
title="title2", description="description2").save()
>
>
>
GeeksModel.objects.create(
title="title2", description="description2").save()
现在, 如果要在管理面板中查看模型及其数据, 则需要注册模型。
让我们注册这个模型。在
极客/admin.py
,
from django.contrib import admin
from .models import GeeksModel
# Register your models here.
admin.site.register(GeeksModel)
现在, 我们已经为后端做好了一切准备。验证已从中创建实例http:// localhost:8000 / admin / geeks / geeksmodel /
文章图片
让我们为其创建一个视图和模板。在geeks / views.py,
from django.shortcuts import render# relative import of forms
from .models import GeeksModeldef list_view(request):
# dictionary for initial data with
# field names as keys
context = {}# add the dictionary during initialization
context[ "dataset" ] = GeeksModel.objects. all ()return render(request, "list_view.html" , context)
在中创建模板templates / list_view.html,
<
div class = "main" >
{% for data in dataset %}.{{ data.title }}<
br />
{{ data.description }}<
br />
<
hr />
{% endfor %}<
/ div >
让我们检查一下
http://本地主机:8000 /
文章图片
类似地, 基于功能的视图可以使用用于创建, 更新, 检索和删除视图的逻辑来实现。
Django CRUD(创建, 检索, 更新, 删除)基于功能的视图:
创建视图–基于函数的视图Django
细节视图–基于函数的视图Django
更新视图–基于函数的视图Django
删除视图–基于函数的视图Django
基于类的视图 基于类的视图提供了一种将视图实现为Python对象而非函数的替代方法。它们不能代替基于功能的视图, 但是与基于功能的视图相比具有某些区别和优点:
- 与特定的HTTP方法(GET, POST等)相关的代码组织可以通过单独的方法而不是条件分支来解决。
- 诸如mixin(多重继承)之类的面向对象技术可用于将代码分解为可重用组件。
基于类的视图示例–
Ingeeks / views.py,
from django.views.generic. list import ListView
from .models import GeeksModelclass GeeksList(ListView):# specify the model for list view
model = GeeksModel
现在创建一个URL路径来映射视图。在geeks / urls.py中,
from django.urls import path# importing views from views..py
from .views import GeeksList
urlpatterns = [
path('', GeeksList.as_view()), ]
在中创建模板templates / geeks / geeksmodel_list.html,
<
ul >
<
!-- Iterate over object_list -->
{% for object in object_list %}
<
!-- Display Objects -->
<
li >
{{ object.title }}<
/ li >
<
li >
{{ object.description }}<
/ li >
<
hr />
<
!-- If objet_list is empty-->
{% empty %}
<
li >
No objects yet.<
/ li >
{% endfor %}
<
/ ul >
让我们检查一下
http://本地主机:8000 /
文章图片
Django CRUD(创建, 检索, 更新, 删除)基于类的通用视图:
- CreateView –基于类的视图Django
- DetailView –基于类的视图Django
- UpdateView –基于类的视图Django
- DeleteView –基于类的视图Django
- FormView –基于类的视图Django
首先, 你的面试准备可通过以下方式增强你的数据结构概念:Python DS课程。
推荐阅读
- 亚马逊专题面试经验分析|S7
- Java中的锯齿数组如何使用(示例)
- u盘格式化后容量变小,本文教您u盘格式化后容量变小怎样恢复
- 制作u盘系统安装盘,本文教您如何制作u盘打开安装盘
- u盘里东西删不掉,本文教您u盘文件删不了怎样办
- 怎样用u盘装系统,本文教您怎样用u盘装xp系统
- 华硕影驰 bios设置,本文教您华硕主板bios如何设置U盘打开
- rog,本文教您华硕rog怎样设置U盘打开
- 技嘉 bios设置,本文教您技嘉主板bios如何设置U盘打开