jos*_*osh 7 python django python-3.5
在我正在进行的项目中,我将大量较大的文件分成小块,以便更容易使用.一个具体的例子是在Django中基于函数的视图创建基于类的视图:
# app/views/LoginView.py
class LoginView(View):
...
# urls.py
from app.views import LoginView
urlpatterns = [
# Here, I have to use LoginView twice
url(r'^login', LoginView.LoginView.as_view())
]
Run Code Online (Sandbox Code Playgroud)
在上面,LoginView
当我想调用它时,我必须使用两次,因为导入LoginView
导入模块,而不是模块中的方法,即使它们是相同的名称.理想情况下,我想避免LoginView.LoginView
每次都打电话.
在Javascript中,我可以说export default function my_function() { ... }
没有命名,当它被导入时它是默认的,例如import my_function from './some_module.js';
有没有办法在Python 3中做这样的事情?我不想这样做,from app.views.LoginView import LoginView
因为,特别是在一个大的Django项目和类似的文件中urls.py
,将每个导入都放在一个单独的行上是不可行的.
您可以使用of LoginView
作为名称导入.app.views
__init__.py
app.views
在app/views/__init__.py
:
from LoginView import LoginView
Run Code Online (Sandbox Code Playgroud)
在 urls.py
import app.views
urlpatterns = [
url(r'^login', app.views.LoginView.as_view())
]
Run Code Online (Sandbox Code Playgroud)