java中的接口是类吗
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("
在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("
现在,在主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小时内删除侵权内容。
发表评论
暂时没有评论,来抢沙发吧~