首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Django:从一个模块导入一个视图比在views.py文件中包含它要慢吗?

在Django中,从一个模块导入一个视图与在views.py文件中包含它相比,可能会导致稍慢的性能。原因如下:

  1. 模块导入:在模块中导入视图时,Python需要搜索模块所在的目录,找到所有具有相同名称的函数,然后按名称查找并绑定它们。这可能导致额外的开销。
  2. 代码执行:在views.py文件中包含视图时,Django可以立即执行该文件中的代码。而在模块中导入视图时,代码执行可能会延迟到需要使用视图的时候。

然而,这些性能差异通常不太明显,并且通常可忽略不计。在实际应用中,优先考虑代码的可读性和维护性。

推荐在Django项目中使用以下方法导入视图(任选其一):

  1. views.py文件中包含视图函数:from myapp.views import my_view
  2. 使用根视图集(根目录下的views.py文件):# myapp/views.py from django.views.generic import TemplateView def my_view(request): return TemplateView.as_view(template_name='my_template.html')
  3. 使用项目的根视图集(在项目根目录下的views.py文件):# myproject/views.py from django.views.generic import TemplateView def my_view(request): return TemplateView.as_view(template_name='my_template.html')

确保在urls.py文件中正确配置视图:

代码语言:python
代码运行次数:0
复制
from django.urls import path
from myapp.views import my_view

urlpatterns = [
    path('my-view/', my_view, name='my_view'),
]

综上所述,从模块导入一个视图可能会导致稍慢的性能,但通常可忽略不计。优先考虑代码的可读性和维护性。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

关于“Python”的核心知识点整理大全58

为此,我们将为注销链接定义一个URL模式,编写一个视图函数, 并在base.html添加一个注销链接。 1....2处,我们调用了函数logout(), 它要求将request对象作为实参。然后,我们重定向到主页(见3)。 3. 链接到注销视图 现在我们需要添加一个注销链接。...19.2.4 注册页面 下面来创建一个让新用户能够注册的页面。我们将使用Django提供的表单UserCreationForm, 但编写自己的视图函数和模板 1....视图函数register() 注册页面首次被请求时,视图函数register()需要显示一个空的注册表单,并在用户提交 填写好的注册表单时对其进行处理。...为此, learning_logs/views.py添加如下代码: views.py --snip-- from django.core.urlresolvers import reverse

10310

djangourl路由配置及渲染方式

创建视图函数并访问 创建app djangourl规则 捕获参数 路径转换器 正则表达式 额外参数 渲染方式 ---- 创建视图并访问   项目中自带的Python文件,并没有带有视图,因此我们自己创建一个...然后views.py导入文件 from django.http import HttpResponse   然后我们views.py,写一些Python函数,用来访问 def hello...’)  url.py视图函数配置路由 from django.urls import path from ....,与其他都无关  2、django的路由系统      当一个请求来到     1、首先到项目目录下,url.py里查找路由规则     2、跟urlconf模块,里面定义了urlpatterns变量...    3、按顺序运行每一个,到第一个匹配的模式停止     4、一旦匹配,django导入并调用给定的视图     5、如果没有匹配到,或者中间出错,则返回404 3、path里参数的含义     path

3K20

Django 系列篇(四):路由篇(上)

URL 请求集合 简单地说,路由就是我们常说的网页地址,Web 服务对外暴露的 API 路由由 4 部分组成,分别是:路由地址、视图函数、可选变量、路由命名,其中路由地址和视图函数是必选部分 新建的项目根目录包含一个...的 path 函数定义,包含参数,分别是:路由地址、路由对应的视图函数 # urls.py(项目根目录) # 导入内置的admin后台管理功能模块 from django.contrib import...admin # 导入路由函数功能模块 from django.urls import path, re_path # urlpatterns:整个项目的路由集合列表 urlpatterns = [...App 目下的视图文件 views.py ,新增一个视图函数 index,利用 Django 内置的 render() 函数渲染一个网页文件 需要注意的是,视图函数必须至少设置一个参数 request...,代表获取的请求对象,包含:请求内容、请求方式、请求头等 # views.py(App下的视图文件) from django.shortcuts import render # 新建一个视图函数:index

52650

关于“Python”的核心知识点整理大全53

在这里,我们导入模块learning_logs.models的模型 Topic(见1),然后使用方法Topic.objects.all()来获取模型Topic的所有实例;它返回的是一个列表,称为查询集...接下来,我们导入了函数url,因为我们需要使用它来将URL映射到视图(见2)。我们还导入模块views(见3),其中的句点让Python从当前的urls.py模块所在的文件夹中导入视图。...在这个 模块,变量urlpatterns是一个列表,包含可在应用程序learning_logs请求的网页(见4)。 实际的URL模式是一个对函数url()的调用,这个函数接受三实参(见)。...第一个一个 正则表达式。Djangourlpatterns查找与请求的URL字符串匹配的正则表达式,因此正则表达 式定义了Django可查找的模式。 我们来看看正则表达式r'^$'。...文件夹learning_logs中新建一个文件夹,并将其命名为templates。 文件夹templates,再 新建一个文件夹,并将其命名为learning_logs。

9610

【愚公系列】2021年12月 Python教学课程 35-Django框架之视图和URL

响应可以是一张网页的HTML内容,一个重定向,一个404错误,一个XML文档,或者一张图片。 无论视图本身包含什么逻辑,都要返回响应。代码写在哪里也无所谓,只要它在你当前项目目录下面。...为了将代码放在某处,大家约定成俗将视图放置项目(project)或应用程序(app)目录的名为views.py文件。...---- 提示:以下是本篇文章正文内容,下面案例可供参考 一、 定义视图 视图就是一个Python函数,被定义应用的views.py....视图的第一个参数是HttpRequest类型的对象reqeust,包含了所有请求信息. 视图必须返回HttpResponse对象,包含返回给请求者的响应信息....需要导入HttpResponse模块 :from django.http import HttpResponse 定义视图函数 : 响应字符串index给客户端 from django.shortcuts

39140

一文完全解读django结构【二】

manage.py : 一个让你用各种方式管理 Django 项目的命令行工具。 里面一层的 demo_proj/ 目录包含你的项目,它是一个纯 Python 包。...Django,每一个应用都是一个Python包。Django自带工具,可以帮你生成应用的基础目录结构,这样你就能专心写代 码,而不是创建目录了。...项目VS应用 你可以把应用理解为实现某个具体业务功能的模块,项目则是配置和应用的集合,一个项目中可以包含多个应用。...我们将在我们创建的 demo_proj 工程的 manage.py 同级目录下创建投票应用。这样它就可以作为顶级模块导入,而不是 demo_proj 的子模块。...打开demo_app/views.py,输入如下代码 这是一个简单的视图,如果我们要看到他的效果,我们需要配置URL映射, demo_app 目录里新建urls.py文件,你的 demo_app 目录结构应该是这样

83720

Django 2.1.7 创建项目

django,项目的组织结构为一个项目包含多个应用,一个应用对应一个业务模块。也就是说,上面说的那么多个功能模块,可以分开多个应用去逐个编写,逐个击破。...views.py文件跟接收浏览器请求,进行处理,返回页面相关。 admin.py文件跟网站的后台管理相关。 migrations文件夹之后给大家介绍。 编写第一个视图 让我们开始编写第一个视图吧。...这是 Django 中最简单的视图。如果想看见效果,我们需要将一个 URL 映射到它——这就是我们需要 URLconf 的原因了。... test1/urls.py 文件的 urlpatterns 列表里插入一个 include(), 如下: from django.contrib import admin from django.urls...,这是你 index 视图中定义的。 启动开发web服务 开发阶段,为了能够快速预览到开发的效果,django提供了一个纯python编写的轻量级web服务器,仅在开发阶段使用。

74410

Django 2.1.7 创建项目

django,项目的组织结构为一个项目包含多个应用,一个应用对应一个业务模块。也就是说,上面说的那么多个功能模块,可以分开多个应用去逐个编写,逐个击破。...mysite/__init__.py:一个文件,告诉 Python 这个目录应该被认为是一个 Python 包。如果你是 Python 初学者,阅读官方文档的 更多关于包的知识。...views.py文件跟接收浏览器请求,进行处理,返回页面相关。 admin.py文件跟网站的后台管理相关。 migrations文件夹之后给大家介绍。 编写第一个视图 让我们开始编写第一个视图吧。... test1/urls.py 文件的 urlpatterns 列表里插入一个 include(), 如下: from django.contrib import admin from django.urls...,这是你 index 视图中定义的。 启动开发web服务 开发阶段,为了能够快速预览到开发的效果,django提供了一个纯python编写的轻量级web服务器,仅在开发阶段使用。

82130

Django 2.1.7 视图 - HttpResponse对象、子类JsonResponse、子类HttpResponseRedirect

HttpResponse对象 视图接收请求并处理后,必须返回HttpResponse对象或子对象。django.http模块定义了HttpResponse对象的API。...如果使用这种方式构造一个漂亮丰富的页面,对于开发人员真是会发疯,于是就有了下面的方式: 调用模板 可以将html、css、js定义到一个html文件,然后由视图来调用。...调用模板简写函数render 每次调用模板时都要执行加载、上下文、渲染三步骤,为了简化操作,Django定义了render()函数封装了以上三步骤的代码,定义django.shortcuts模块...,而是转到这个视图就可以,此时就需要模拟一个用户请求的效果,从一个视图转到另外一个视图,就称为重定向。...示例 1)assetinfo/views.py文件定义视图red1,代码如下: from django.http import HttpResponseRedirect # 定义重定义向视图,转向刚刚创建的

1.3K20

Django 系列博客(二)

项目目录结构及作用 项目目录:包含项目最基本的一些配置 -- __init__.py:模块的配置文件,将blog_proj文件夹变成了模块 -- settings.py:配置总文件...(相应什么,如何相应),代码逻辑处理的主要地点,项目的大部分代码所在位置 页面响应 第一个响应 通过配置路由和视图文件来响应第一次连接请求。...# 导入处理请求的 http 相应功能 from django.http import HttpResponse # django一个请求都会设置相应函数来进行处理 # 函数的参数约定为 request... views.py文件编写对应响应功能函数时,会自动出现模板文件 ?...': True, ... }, ] 第一个重定向 和上面的一样,首先在 views.py文件配置响应函数 from django.shortcuts import render

59120

Python Django 编程 | 连载 02 - Django 路由

一、Django 的路由 路由,既 URL 地址,每个 URL 都表示不同的页面,每个 URL 都会 views.py 一个视图函数。...创建一个新的 Django 项目 django_urls_views,并创建 xray 应用, xray 应用下的 views.py 创建一个视图函数 index(),该函数返回一个字符串。...视图函数绑定 from django.contrib import admin # 导入 URL 模块 from django.urls import path # 导入视图函数 from xray...可以每个应用创建一个自己的 urls.py,在其中定义该应用包含的所有的路由,再在根路由中定义每一个应用的映射。...获取请求路径的参数 xray 应用下的 views.py 定义一个新的视图函数 yankee,视图函数定义一个参数用来接收请求路径传递过来的参数。

98320

Flask VS Django:为什么Flask可能会更好

Django运行Flask运行更复杂的Web应用程序(例如处理和验证用户输入并将其存储在数据库)的Web应用程序可能需要更少的时间和精力。...下一步是使用Django创建一个App,这是一个低于Django项目的组织结构(一个Project可以包含许多应用程序)。 我们将使用上一个命令创建的manage.py文件来创建应用程序。...包含在HttpResponse的字符串,以便它可以我们用户的Web浏览器显示。 现在我们需要为我们的应用程序创建一个urls.py文件。...url(r'^$', views.index, name='index'), ] 第1行导入url函数,以便我们可以将特定URL链接到views.py文件的函数。...第3行导入我们添加了“Hello,World” index()视图views.py文件。 第5-7行设置了urlpatterns列表 - 这相当于我们Flask中使用的@app.route装饰器。

8.2K20

Django 1.10文文档-第一个应用Part1-请求与响应

目录[-] 本教程,我们将引导您完成一个投票应用程序的创建,它包含下面两部分: 一个可以进行投票和查看结果的公开站点; 一个可以进行增删改查的后台admin管理界面; 我们假设你已经安装了...要在polls目录创建一个URLconf,polls文件创建一个名为urls.py的文件。...文件指向我们建立的polls这个app独有的urls.py文件,打开mysite/urls.py文件,你需要先导入include模块,代码如下: from django.conf.urls import...Django拿着用户请求的url地址,urls.py文件对urlpatterns列表的每一项条目从头开始进行逐一对,一旦遇到匹配项,立即执行该条目映射的视图函数或二级路由,其后的条目将不再继续匹配...Part3-视图和模板 Django 1.10文文档-第一个应用Part4-表单和通用视图

1.4K50

Django视图

语法 url()对象,被定义django.conf.urls包,有两种语法结构: 语法一:包含,一般自定义应用创建一个urls.py来定义url。...上去  二、视图 视图就是python的函数,视图一般被定义"应用/views.py"文件,此例为"booktest/views.py"文件。...视图的第一个参数必须是HttpRequest对象,django.http模块定义了HttpRequest对象的API。 属性 下面除非特别说明,属性都是只读的。...此时不需要重新编写列表的代码,而是转到这个视图就可以,此时就需要模拟一个用户请求的效果,从一个视图转到另外一个视图,就称为重定向。...重定向简写函数redirect django.shortcuts模块为重定向类提供了简写函数redirect。 1)修改booktest/views.py文件red1视图,代码如下: ? ?

4.4K20

Django教程 —— 视图及URL

/admin/ 是我们想要请求的页面,服务器收到这个请求之后,就一定对应着一个处理动作,这个处理动作就是帮我们产生页面内容并返回回来,这个过程 Django 是由 视图 来做的。... Django 中使用视图,一般需要进行两步操作: 定义视图 配置URL 运行环境 Python 3.9 Django 3.1.2 Django视图 基于函数的视图 视图函数的必须有一个参数,一般叫...定义视图函数 Django 项目中的应用下的 views.py 文件定义如下格式函数即可 # -*- coding:utf-8 -*- """ @Author :Hui @Desc :...('^book/', include('book.urls')), # 图书模块 ] 应在每个应用创建 urls.py url配置文件,然后让项目包含其中 include('book.urls') 。...定义类视图 还是 Django 项目中的应用下的 views.py 文件定义 首先导入 Django视图类 from django.views.generic import View 然后让我们自己写的类继承

70120

Django来敲门~第一部分【4. 创建第一个模块应用】

创建项目的子模块应用 上一节内容,我们创建了一个django项目mysite/,项目的骨架的基础上,我们再创建基于项目的一个模块投票模块模块名称暂时定义为polls 进入项目目录,执行如下命令,...mysite/项目基础上创建一个模块应用polls python3 manage.py startapp polls 上述命令执行完成之后,会在我们的项目文件,自动生成一个polls应用模块文件夹...创建模块应用的第一个视图 模块视图对应的是views.py文件,打开polls/views.py文件,创建如下的方法 # 引入需要的模块 from django.http import HttpResponse...视图创建完成后,我们要将视图和对应的URL地址进行关联,项目中的url地址映射的主要配置文件是urls.py,polls模块创建urls.py配置文件,并修改polls/urls.py文件内容如下:..., name="index") 5.匹配到views.index,开始打开子模块views.py视图文件,执行index视图方法 6.views.py视图方法index()返回了一条字符串

32010
领券