Django(part19)--Django中的应用
學(xué)習(xí)筆記,僅供參考,有錯(cuò)必糾
文章目錄
- Django中的應(yīng)用
- 什么是應(yīng)用(app)
- 創(chuàng)建應(yīng)用app
- 應(yīng)用的分布式路由
- 案例
Django中的應(yīng)用
什么是應(yīng)用(app)
應(yīng)用在Django項(xiàng)目中是一個(gè)獨(dú)立的業(yè)務(wù)模塊,可以包含自己的路由(urls.py),視圖(views.py),……
Django中,主文件夾是不處理用戶具體請(qǐng)求的。主文件夾的作用是做項(xiàng)目的初始化以及請(qǐng)求的分發(fā)(分布式請(qǐng)求處理),具體的請(qǐng)求是由應(yīng)用來(lái)進(jìn)行處理的
創(chuàng)建應(yīng)用app
在mywebsite3項(xiàng)目下,創(chuàng)建一個(gè)叫book的應(yīng)用(APP):
F:\MyStudio\PythonStudio\goatbishop.project01\Django\mywebsite3>python manage.py startapp book創(chuàng)建成功后,我們發(fā)現(xiàn)項(xiàng)目下多了一個(gè)book文件夾,文件夾下有一堆東西:
其中,migrations文件夾是保存數(shù)據(jù)遷移的中間文件;__init__.py是應(yīng)用子包的初始化文件;admin.py是應(yīng)用的后臺(tái)管理配置文件;apps.py是應(yīng)用的屬性配置文件;models.py是與數(shù)據(jù)庫(kù)相關(guān)的模型映射類文件;tests.py是應(yīng)用的單元測(cè)試文件;views.py是定義視圖處理函數(shù)的文件
現(xiàn)在,我想要這個(gè)APP起作用,就需要將其注冊(cè)到mywebsite3文件夾下settings.py模塊里的INSTALLED_APPS列表中:
INSTALLED_APPS = ['django.contrib.admin','django.contrib.auth','django.contrib.contenttypes','django.contrib.sessions','django.contrib.messages','django.contrib.staticfiles','book', ]當(dāng)我們配置過(guò)之后,就可以讓該應(yīng)用(book)和當(dāng)前的項(xiàng)目(mywebsite3)融為一體
應(yīng)用的分布式路由
首先,在book文件夾下,我們創(chuàng)建一個(gè)urls.py模塊,并敲入以下代碼:
from django.conf.urls import urlfrom . import viewsurlpatterns = [url(r"^mylist/$", views.mylist), ]并在book文件夾下的views.py中敲入以下代碼:
from django.shortcuts import render from django.http import HttpResponse # Create your views here.def mylist(request):return HttpResponse("book中的mylist被調(diào)用")現(xiàn)在,我們回到mywebsite3項(xiàng)目的mywebsite3文件夾下的urls.py,并敲入以下代碼:
from django.contrib import admin from django.urls import path from django.urls import re_path from django.conf.urls import include from . import viewsurlpatterns = [path('admin/', admin.site.urls),re_path(r'^test_form/$', views.test_form),re_path(r'^test_static/$', views.test_static),re_path(r'^book/', include("book.urls")), ]這時(shí),我們就可以對(duì)http://127.0.0.1:8000/book/mylist進(jìn)行訪問(wèn)了:
案例
我們?cè)趍ywebsite3項(xiàng)目下再創(chuàng)建一個(gè)game應(yīng)用和sports應(yīng)用,并注冊(cè),主路由配置只做分發(fā),不進(jìn)行請(qǐng)求處理。
創(chuàng)建game應(yīng)用:
F:\MyStudio\PythonStudio\goatbishop.project01\Django\mywebsite3>python manage.py startapp game創(chuàng)建sports應(yīng)用:
F:\MyStudio\PythonStudio\goatbishop.project01\Django\mywebsite3>python manage.py startapp sports在mywebsite3文件夾的settings.py模塊里的INSTALLED_APPS列表中注冊(cè)這兩個(gè)應(yīng)用:
INSTALLED_APPS = ['django.contrib.admin','django.contrib.auth','django.contrib.contenttypes','django.contrib.sessions','django.contrib.messages','django.contrib.staticfiles','book','game','sports', ]在game應(yīng)用下增加urls.py模塊,并敲入如下代碼:
from django.urls import re_pathfrom . import viewsurlpatterns = [re_path(r"^index/$", views.index), ]在game應(yīng)用的views.py文件下,敲入下面的代碼:
from django.shortcuts import render from django.http import HttpResponse # Create your views here.def index(request):return HttpResponse("<h2>Game 首頁(yè)</h2>")在sports應(yīng)用下增加urls.py模塊,并敲入如下代碼:
from django.urls import re_pathfrom . import viewsurlpatterns = [re_path(r"^index/$", views.index), ]在sports應(yīng)用的views.py文件下,敲入下面的代碼:
from django.shortcuts import render from django.http import HttpResponse # Create your views here.def index(request):return HttpResponse("<h2>sports 首頁(yè)</h2>")現(xiàn)在,在主urls.py文件中(mywebsite3文件夾下的urls.py),敲入下面的代碼:
from django.contrib import admin from django.urls import path from django.urls import re_path from django.conf.urls import include from . import viewsurlpatterns = [path('admin/', admin.site.urls),re_path(r'^test_form/$', views.test_form),re_path(r'^test_static/$', views.test_static),re_path(r'^book/', include("book.urls")),re_path(r'^game/', include("game.urls")),re_path(r'^sports/', include("sports.urls")), ]現(xiàn)在,我們向http://127.0.0.1:8000/game/index/發(fā)起請(qǐng)求:
再向http://127.0.0.1:8000/sports/index/發(fā)起請(qǐng)求:
總結(jié)
以上是生活随笔為你收集整理的Django(part19)--Django中的应用的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: Django(part18)--静态文件
- 下一篇: Django(part21)--mode