在Django中,是否不可能从urls.py导入多个视图?
例如,我在urls.py中有以下代码:
from mysite.books import views
from mysite.contact import views
urlpatterns = patterns('',
(r'^contact/$', views.contact),
(r'^search/$', views.search),
)
Run Code Online (Sandbox Code Playgroud)
但是,除非我禁用其中一对,否则服务器会显示错误.所以我的问题有三个:
1)是否不可能有多个导入视图语句?2)如何解决这个问题?3)什么是放置所有views.py的最佳做法?一个文件?多个文件?等等
谢谢.
Pao*_*olo 15
1)是的.
2)
from mysite.books import views as books_views
from mysite.contact import views as contact_views
urlpatterns = patterns('',
(r'^contact/$', contact_views.contact),
(r'^search/$', books_views.search),
)
Run Code Online (Sandbox Code Playgroud)
3)根据Django文档,"这段代码可以存在于你想要的任何地方,只要它在你的Python路径上." 我保留了所有的应用程序视图app/views.py
您可以根据需要导入任意数量的内容,但对象必须具有唯一的名称才能进行区分.
有几种方法可以解决这个问题.一种是简单地导入函数,而不是模块:
from mysite.books.views import books
from mysite.contact.views import contact
Run Code Online (Sandbox Code Playgroud)
如果每个文件中只有一个或两个视图,这显然是好的.第二种选择是以不同的名称导入模块:
from mysite.books import views as books_views
from mysite.contact import views as contact_views
Run Code Online (Sandbox Code Playgroud)
第三个选项根本不是导入视图,而是使用字符串来引用它们:
urlpatterns = patterns('',
(r'^contact/$', 'contact.views.contact'),
(r'^search/$', 'book.views.search'),
)
Run Code Online (Sandbox Code Playgroud)
第四个是为每个应用程序分别使用urls.py,并在主urls.py中包含urlconf.
| 归档时间: |
|
| 查看次数: |
3340 次 |
| 最近记录: |