我最近开始学习Django,并且遵循Django网站教程中给出的代码示例。因此,我创建了一个网站' mysite'和一个app' books'在该网站。因此,有两个views.py'结果目录结构中的文件 - 一个在' mysite'文件夹和书籍中的一个'文件夹,只有一个' urls.py'文件 - 在' mysite'仅文件夹。我的问题如下 - 如何避免我在两个views.py'中创建的函数的名称冲突。文件?如果两个文件中有两个具有相同名称的函数,Django如何解决在' urls.py'中为给定的URL模式调用哪个函数?文件?
以下是我的目录结构:
C:.
│ manage.py
│
├───books
│ admin.py
│ admin.pyc
│ models.py
│ models.pyc
│ tests.py
│ views.py
│ views.pyc
│ __init__.py
│ __init__.pyc
│
└───mysite
base.html
base_blog.html
base_welcome.html
currdate.html
settings.py
settings.pyc
urls.py
urls.pyc
views.py
views.pyc
wsgi.py
wsgi.pyc
__init__.py
__init__.pyc
一个额外的相关问题 - 如果我有多个项目(例如' mysite')和这些项目中的不同应用程序,我如何区分项目中的URL?我的意思是,目前,网址http://127.0.0.1:8000/hello
已映射到“谜底”中的视图功能。项目。如果我现在还有一个项目,比如说“我的新网站”,那么Django如何将网址http://127.0.0.1:8000/hello
解析为“mynewsite'”的查看功能怎么办?我希望我的问题很明确。
谢谢, 勒凯什。
答案 0 :(得分:1)
在python中你可以导入库(在这种情况下像views.py这样的文件)其中一个会导致你所说的名称冲突,即
from books.views import my_view
from mysite.views import my_view
在这种情况下,my_view将被覆盖。但是,您也可以执行以下操作
import books.views
import mysite.views
在这种情况下,要访问导入的视图,您必须使用完整路径,即。即books.views.my_view,因此没有名称冲突。
关于您的其他问题,请考虑以下urls.py内容:
urlpatterns = patterns('',
url(r'^$', mysite.views.my_view, name='index'),
您可以将其替换为
urlpatterns = patterns('',
url(r'^$', books.views.my_view, name='index'),