Django URL和视图

时间:2016-08-20 11:07:34

标签: django django-views django-urls django-1.9 django-1.10

由于以下方法从视图中映射Django Url,因此在Django 1.9及更高版本中被折旧

  

url(r'^ contact / $','newsletter.views.contact',name ='contact'),

     

url(r'^ about / $','home.views.about',name ='about'),

这就是现有的

  

来自简报导入视图'

     

url(r'^ about / $','views.about',name ='about'),

如何为2个不同的应用视图映射我的网址

  

来自主页导入视图

     

来自简报导入视图

     

url(r'^ home / $','views.home',name ='home'),#location in home

     

url(r'^ about / $','views.about',name ='about'),#news in newsletter

像我上面所做的映射会导致错误,所以我需要帮助。 Django的新手

3 个答案:

答案 0 :(得分:1)

由于它是一个核心的python构造,因此我不明白使用不合格的模块名称是什么意思。 但是,您可以使用“import as”语句将它们绑定到不同的别名,从而管理包含具有相同名称的子模块的两个不同模块。

示例:

from home import views as home_view
from newsletter import views as news_view

然后,您可以在声明的命名空间中使用别名home_viewnews_view来引用每个模块而不是views

您可以查看Python文档here中的import语句语法:

  

如果成功检索到所请求的模块,则会进行该模块   可以通过以下三种方式之一在本地命名空间中使用:

     
      
  • 如果模块名称后跟as,则名称跟随原样   直接绑定到导入的模块。
  •   
  • 如果未指定其他名称,   并且导入的模块是顶级模块,模块的名称   绑定在本地名称空间中作为对导入模块的引用
  •   
  • 如果要导入的模块不是顶级模块,则为名称   包含模块的顶级包的绑定在   本地命名空间作为顶级包的引用。进口   必须使用其完全限定名称而不是访问模块   直接
  •   

答案 1 :(得分:0)

尝试:

from home import views as home_views

from newsletter import views

url(r'^home/$', 'home_views.home', name='home'), #located in home

url(r'^about/$', 'views.about', name='about'), #located in newsletter

答案 2 :(得分:0)

作为替代方案,您只能导入视图功能:

from home.views import home
from newsletter.views import about

urlpatterns = [
    url(r'^home/$', home, name='home'),
    url(r'^about/$', about, name='about'),
]