1、创建第二个app
假设我们项目P下面已经有了一个默认的app,名字是app1。现在我想创建第二个app,名字时app2。
进入pychram下的Terminal中,运行命令:
1
|
python manage.py startapp app2
|
此外,我在每个app下都建立一个urls.py,方便区分。
右击app名,点击“new”,选择“Python File”,命名为urls,确定。
2、设置url.py
(1)设置P\urls.py
引入app2下的urls,然后添加引导路径。具体代码如下:
1
2
3
4
|
from app2 import urls as app2_urls
urlpatterns = [
path( 'app2/' ,include(app2_urls)), # 将所有以app2开头的urls,都交给app2(app名)下的urls.py处理
]
|
(2)设置app2\urls.py
1
2
3
4
5
|
from django.urls import path
from app2 import views
urlpatterns = [
path( 'index/' , views.index),
]
|
3、编写app2下的views.py
1
2
3
4
5
|
from django.shortcuts import render,HttpResponse
# Create your views here.
# 绑定博客
def index(request):
return HttpResponse( 111 )
|
4、html页面如何调用url
一般在href或者src中调用一般这样写:
1
|
href = "/app2/index/" rel = "external nofollow"
|
这样就OK了。
内容扩展:
Django项目下创建多个app
基于Django2.0版本建立的项目。
之前在项目下建立app都是单个的,最近由于需求,需要在单个项目下建立多个app,最简单的方法就是将所有的app都放在与manage.py文件同级的目录下,但是这样的方式会显得项目目录下的文件夹臃肿,对于强迫症的而言简直是一种折磨。
所以我采取了将多个app放在同一个文件夹内的方式来解决这种问题。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
|
myDjango
├───.idea
│ └───inspectionProfiles
├───Apps
│ ├───app01
│ │ ├───migrations
│ │ │ └───__pycache__
│ │ └───__pycache__
│ └───app02
│ ├───migrations
│ │ └───__pycache__
│ └───__pycache__
├───myDjango
│ └───__pycache__
└───templates
├───app01
└───app02
|
myDjango是项目名称,将创建的app放在了Apps文件夹内。这样做使整个项目的看起来干净很多。对于template也采取了类似的做法,将不同应用的template放在不同的目录下,为了使url尽量看起来舒服一点,在每个应用中添加了一个urls.py文件,为了在项目的urls.py文件中引用。
放置好之后在myDjango目录下的setting.py文件进行设置,添加一句
1
|
sys.path.insert( 0 , os.path.join(BASE_DIR, 'Apps' ))
|
做好之后,还需要在myDjango目录下的urls.py文件添加对应的path
1
2
3
4
5
6
7
8
|
from django.contrib import admin
from django.urls import path, include
urlpatterns = [
path( 'admin/' , admin.site.urls),
path( 'app02/' , include( "Apps.app02.urls" )),
path( 'app01' , include( "Apps.app01.urls" )),
]
|
到这里基本上就可以在一个项目中设置多个app了。
原文链接:https://www.py.cn/kuangjia/django/12918.html