首页
学习
活动
专区
工具
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

12510
  • django中url路由配置及渲染方式

    创建视图函数并访问 创建app django中url规则 捕获参数 路径转换器 正则表达式 额外参数 渲染方式 ---- 创建视图并访问   项目中自带的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

    3.1K20

    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

    54450

    关于“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()的调用,这个函数接受三个实参(见)。...第一个是一个 正则表达式。Django在urlpatterns中查找与请求的URL字符串匹配的正则表达式,因此正则表达 式定义了Django可查找的模式。 我们来看看正则表达式r'^$'。...在文件夹learning_logs中新建一个文件夹,并将其命名为templates。 在文件夹templates中,再 新建一个文件夹,并将其命名为learning_logs。

    11010

    【愚公系列】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

    40940

    一文完全解读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 目录结构应该是这样

    87320

    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 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服务器,仅在开发阶段使用。

    76110

    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服务器,仅在开发阶段使用。

    83530

    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

    61520

    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,在该视图函数中定义一个参数用来接收请求路径中传递过来的参数。

    1K20

    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.5K20

    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.5K20

    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 然后让我们自己写的类继承

    72620

    TO-do api

    在现有代码目录中,我们将创建一个todo目录,其中包含我们的后端Django Python代码和我们的前端React JavaScript代码。 最终的布局将如下所示。...那么您就不在现有的虚拟环境中。 在此todo文件夹中将是我们的后端和前端目录。 让我们创建一个后端文件夹,安装Django,然后激活一个新的虚拟环境。...如果我们在两个不同的应用程序中更新了模型,然后运行python manage.py makemigrations,则生成的单个迁移文件将包含两个应用程序中的数据。 这只会增加调试难度。...我们从一个传统的Django项目和应用程序开始,我们创建了数据库模型并添加了数据。 然后,我们安装了Django REST Framework并配置了URL。...否则,urls.py和views.py文件的行为类似。 Consuming the API 传统上使用API是一个挑战。

    3.6K31
    领券