Django(part19)--Django中的应用(Django文档)

网友投稿 254 2022-08-31


Django(part19)--Django中的应用(Django文档)

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

文章目录

​​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文件夹,文件夹下有一堆东西:

其中,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 urlfrom . import viewsurlpatterns = [ url(r"^mylist/$", views.mylist),]

并在book文件夹下的views.py中敲入以下代码:

from django.shortcuts import renderfrom django.import HttpResponse# Create your views here.def mylist(request): return HttpResponse("book中的mylist被调用")

现在,我们回到mywebsite3项目的mywebsite3文件夹下的urls.py,并敲入以下代码:

from django.contrib import adminfrom django.urls import pathfrom django.urls import re_pathfrom django.conf.urls import includefrom . 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")),]

这时,我们就可以对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_pathfrom . import viewsurlpatterns = [ re_path(r"^index/$", views.index),]

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

from django.shortcuts import renderfrom django.import HttpResponse# Create your views here.def index(request): return HttpResponse("

Game 首页

")

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

from django.urls import re_pathfrom . import viewsurlpatterns = [ re_path(r"^index/$", views.index),]

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

from django.shortcuts import renderfrom django.import HttpResponse# Create your views here.def index(request): return HttpResponse("

sports 首页

")

现在,在主urls.py文件中(mywebsite3文件夹下的urls.py),敲入下面的代码:

from django.contrib import adminfrom django.urls import pathfrom django.urls import re_pathfrom django.conf.urls import includefrom . 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/发起请求:

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


版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:使用Spring初始化加载InitializingBean()方法
下一篇:Java数据结构最清晰图解二叉树前 中 后序遍历
相关文章

 发表评论

暂时没有评论,来抢沙发吧~