我创建了一个名为mysite的项目,在这个项目下,创建了一个名为learn的app。在这个app下创建了两个views,一个是index,一个是login。

要想使用这两个views,必须要先引入才行。urls代码如下:

#coding:utf8fromdjango.conf.urlsimporturl,includefromdjango.contribimportadmin#先引入视图,才能使用importlearn.viewsaslearn_viewsurlpatterns=[url(r'^admin/',admin.site.urls),url(r'^$',learn_views.index),url(r'^login/',learn_views.login),]

这样当访问http://127.0.0.1:8000/时,就由learn这个app的views中的index函数来响应请求。

当访问http://127.0.0.1:8000/login时,就由learn这个app的views中的login函数来响应请求。


如果我的mysite项目中有多个app(learn和admin),那么每次访问其中其中一个app下的某一个网址时,都需要在mysite/urls中进行设置就比较麻烦?能否在每个app中设置urls呢?

我们可以这样做:

在project_/urls中 include(app.urls), app/urls文件需要创建。

设置mysite/urls

#coding:utf8##一定要importinclude模块fromdjango.conf.urlsimporturl,includefromdjango.contribimportadminurlpatterns=[url(r'^admin/',admin.site.urls),url(r'^learn/',include('learn.urls'))#url(r'^$',learn_views.index),#url(r'^login/',learn_views.login),]

注意:mysite/urls中一定要导入include模块。

这样当访问的网址后面为learn时,由learn下的urls文件来响应。


设置learn/urls

#coding:utf8fromdjango.conf.urlsimporturlfromdjango.contribimportadmin##要记得引入learn/views中的所有方法fromlearn.viewsimport*urlpatterns=[url(r'^$',index),url(r'^login/',login),]

如何访问lean 这个app下的login网址?

http://127.0.0.1:8000/learn/login