当前位置 : 主页 > 编程语言 > python >

Django(part19)--Django中的应用

来源:互联网 收集:自由互联 发布时间:2022-06-15
学习笔记,仅供参考,有错必纠 文章目录 ​​Django中的应用​​ ​​什么是应用(app)​​ ​​创建应用app​​ ​​应用的分布式路由​​ ​​案例​​ Django中的应用 什么是应用(a

学习笔记,仅供参考,有错必纠



文章目录

  • ​​Django中的应用​​
  • ​​什么是应用(app)​​
  • ​​创建应用app​​
  • ​​应用的分布式路由​​
  • ​​案例​​



Django中的应用



什么是应用(app)



应用在Django项目中是一个独立的业务模块,可以包含自己的路由(urls.py),视图(views.py),……

Django中,主文件夹是不处理用户具体请求的。主文件夹的作用是做项目的初始化以及请求的分发(分布式请求处理),具体的请求是由应用来进行处理的



创建应用app



在mywebsite3项目下,创建一个叫book的应用(APP):

F:\MyStudio\PythonStudio\goatbishop.project01\Django\mywebsite3>python manage.py startapp book

创建成功后,我们发现项目下多了一个book文件夹,文件夹下有一堆东西:

Django(part19)--Django中的应用_初始化

其中,migrations文件夹是保存数据迁移的中间文件;​​__init__.py​​是应用子包的初始化文件;admin.py是应用的后台管理配置文件;apps.py是应用的属性配置文件;models.py是与数据库相关的模型映射类文件;tests.py是应用的单元测试文件;views.py是定义视图处理函数的文件



现在,我想要这个APP起作用,就需要将其注册到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',
]

当我们配置过之后,就可以让该应用(book)和当前的项目(mywebsite3)融为一体



应用的分布式路由



首先,在book文件夹下,我们创建一个urls.py模块,并敲入以下代码:

from django.conf.urls import url

from . import views

urlpatterns = [
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被调用")

现在,我们回到mywebsite3项目的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 views

urlpatterns = [
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")),
]

这时,我们就可以对http://127.0.0.1:8000/book/mylist进行访问了:

Django(part19)--Django中的应用_python_02



案例



我们在mywebsite3项目下再创建一个game应用和sports应用,并注册,主路由配置只做分发,不进行请求处理。

创建game应用:

F:\MyStudio\PythonStudio\goatbishop.project01\Django\mywebsite3>python manage.py startapp game

创建sports应用:

F:\MyStudio\PythonStudio\goatbishop.project01\Django\mywebsite3>python manage.py startapp sports

在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',
'game',
'sports',
]

在game应用下增加urls.py模块,并敲入如下代码:

from django.urls import re_path

from . import views

urlpatterns = [
re_path(r"^index/$", views.index),
]

在game应用的views.py文件下,敲入下面的代码:

from django.shortcuts import render
from django.http import HttpResponse
# Create your views here.

def index(request):
return HttpResponse("<h2>Game 首页</h2>")

在sports应用下增加urls.py模块,并敲入如下代码:

from django.urls import re_path

from . import views

urlpatterns = [
re_path(r"^index/$", views.index),
]

在sports应用的views.py文件下,敲入下面的代码:

from django.shortcuts import render
from django.http import HttpResponse
# Create your views here.

def index(request):
return HttpResponse("<h2>sports 首页</h2>")

现在,在主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 views

urlpatterns = [
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")),
]

现在,我们向http://127.0.0.1:8000/game/index/发起请求:

Django(part19)--Django中的应用_python_03

再向http://127.0.0.1:8000/sports/index/发起请求:

Django(part19)--Django中的应用_分布式_04

上一篇:Django(part30)--原生的数据库操作方法
下一篇:没有了
网友评论