Where should imports be in Django's views.py?
本问题已经有最佳答案,请猛点这里访问。
对于Web应用程序上运行时间最少的情况,什么地方是保持我的导入在VIEWS.py中的理想位置?
假设我想用外部模块验证和处理一些表单条目。我的当前代码:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 | from django.shortcuts import render from .forms import * import re import module1 import module2 def index(request): form = MyForm() if request.method == 'POST': form = MyForm(request.POST) if form.is_valid(): # #Process my stuff here using re, module1, module2 # return render(request, 'index.html', context) |
但是,如果条件
在这些条件通过后导入这些模块(因为这是实际需要的时候)会在这些条件失败时降低程序或webapp的运行时开销吗?在不需要时避免不必要的进口?
我的想法的psuedo代码:
1 2 3 4 5 6 7 | if form.is_valid(): import re #Perform some regex matches and stuff if (above re matches succeed): import module1 #Process my stuff here using module1 here #and so on importing modules only when they are required |
其中哪一个是推荐的,并将在网站上有最好的性能?
不要这样做。
没有理由在这样的代码中间导入。导入只执行一次;因为几乎可以肯定,在某个时刻,您的代码将遵循有效路径,所以您将需要该导入,因此在这之前停止导入没有好处。
实际上,这可能会降低它的性能;而不是在进程启动时完成所有导入,而是在某人请求的中间进行导入。
但不管怎样,两者之间的差异都可以忽略不计。为了便于阅读,请将导入的内容放在它们所属的位置,顶部。
文件顶部的导入模块完全可以,这是一种推荐的方法。
它不增加任何运行时开销,因为导入只做了一个,而不是在每个请求(如在PHP中)时。