我创建了一个名为mysite的项目,在这个项目下,创建了一个名为learn的app。在这个app下创建了两个views,一个是index,一个是login。
要想使用这两个views,必须要先引入才行。urls代码如下:
1
2
3
4
5
6
7
8
9
10
|
#coding:utf8
from
django.conf.urls
import
url,include
from
django.contrib
import
admin
#先引入视图,才能使用
import
learn.views as learn_views
urlpatterns
=
[
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
1
2
3
4
5
6
7
8
9
10
11
12
|
#coding:utf8
##一定要import include模块
from
django.conf.urls
import
url,include
from
django.contrib
import
admin
urlpatterns
=
[
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
1
2
3
4
5
6
7
8
9
10
11
|
#coding:utf8
from
django.conf.urls
import
url
from
django.contrib
import
admin
##要记得引入learn/views中的所有方法
from
learn.views
import
*
urlpatterns
=
[
url(r
'^$'
, index),
url(r
'^login/'
, login),
]
|
如何访问lean 这个app下的login网址?
http://127.0.0.1:8000/learn/login
本文转自 曾哥最爱 51CTO博客,原文链接:http://blog.51cto.com/zengestudy/1901031,如需转载请自行联系原作者