Django搭建图书管理系统02:创建并配置APP功能模块

在这里插入图片描述

📁 创建APP

**Django中的APP(应用程序)是将功能模块组织在一起的单位,每个APP通常负责处理特定的功能。**开发者可以将不同功能的模块放在不同的app中, 方便代码的复用。app就是项目的基石,因此开发博客的第一步就是创建新的app,用来实现跟图书相关的功能模块。

使用PyCharm打开项目。在PyCharm的终端输入python manage.py startapp book指令,创建名为book的app:

(venv) PS E:\djangopj\library> python manage.py startapp book

这将在项目目录下创建一个名为book的APP。

在APP目录中,你可以编写模型(models)、视图(views)、模板(templates)等,来实现该功能模块的特定功能。

查看一下book文件夹,应该看到这样的结构:

library    # 项目根目录
├── book          	# APP目录
│   ├── migrations 	# 数据库迁移文件目录
│   ├── templates  	# 模板文件目录
│   ├── models.py   # 模型文件
│   ├── views.py    # 视图文件
│   ├── urls.py     # URL配置文件
│   └── ...
└── ...

在这里插入图片描述

在上述项目结构中,book是我们创建的APP的目录,其中包含了处理图书管理功能所需的各个文件和目录。

💡 注册APP(settings)

接着我们需要修改项目配置文件,“告诉”Django现在有article这么一个app了。
要让Django项目知道你创建的APP,需要将其注册到项目的settings.py文件中的INSTALLED_APPS列表中。
打开项目根目录下的settings.py文件,找到INSTALLED_APPS列表,然后将你的APP添加到该列表中。例如,将book APP添加到INSTALLED_APPS列表中:

library/settings.py

INSTALLED_APPS = [
    ...
    'book',
    ...
]

在这里插入图片描述

通过注册APP,Django将能够识别并加载该APP的功能模块。

🔗配置访问路径(urls)

Django中,你需要配置URL路径以匹配用户请求的路径,并将其映射到相应的视图函数。

打开library目录下的urls.py,增加以下代码:

# library/urls.py

from django.contrib import admin
# 记得引入include
from django.urls import path, include

# 存放映射关系的列表
urlpatterns = [
    path('admin/', admin.site.urls),

    # 新增代码,配置app的url
    path('book/', include('book.urls', namespace='book')),
]

在这里插入图片描述

path 函数在 Django中的的定义如下所示:

path(route, view, kwargs, name)

它可以接收 4 个参数,其中前两个是必填参数后两个为可选参数。参数解析如下:

  • route:是一个匹配 URL 的准则(类似正则表达式)。当 Django 响应一个请求时,它会从 urlpatterns 的第一项开始,按顺序依次匹配列表中的项,直到找到匹配的项,然后执行该项映射的视图函数或者 include 函数分发的下级路由,因此,url 路由的编写在 Django中十分的重要!
  • view:指的是处理当前 url 请求的视图函数。当 Django 匹配到某个路由条目时,自动将封装的 HttpRequest 对象作为第一个参数,被“捕获”的参数以关键字参数的形式,传递给该条目指定的视图函数。
  • kwargs:指使用字典关键字传参的形式给关联的目标视图函数传递参数。
  • name:给 URL 起个别名,常用于 url 的反向解析,避免在模板中适应硬编码的方式使用嵌入 url,在后续章节会进行详细讲解。
  • 参数book/分配了app的访问路径;
  • include将路径分发给下一步处理;
  • namespace可以保证反查到唯一的url,即使不同的app使用了相同的url`。

记得在顶部引入include

在开发环境下,book的url为:http://127.0.0.1:8000/book/

还没结束。现在我们已经通过path将根路径为book的访问都分发给book这个app去处理。但是app通常有多个页面地址,因此还需要app自己也有一个路由分发,也就是book.urls了。

book 可以有多个页面,如列表页面、详情页面等,那么就需要如下两个url:

http://127.0.0.1:8000/book/list/

http://127.0.0.1:8000/book/detail/

app 中的 urls.py 就是用来区分它们的。

app生成时并没有这个文件,因此需要自己在book文件夹中创建urls.py,在里面输入:

# book/urls.py

# 引入path
from django.urls import path

# 正在部署的应用的名称
app_name = 'book'

urlpatterns = [
    # 目前还没有urls
]

在这里插入图片描述

urlpatterns中暂时是空的,没写入任何路径的映射,不着急以后会写。

此时我们的app就配置完成了。

注意此时app还没有写好,因此启动服务器可能会报错,是正常的。

Django 2.0之后,appurls.py必须配置app_name,否则会报错。

总结

本章创建了博客文章功能的app,学习了注册app并配置url

下一章开始编写模型Model,理解Django的数据库处理。

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

逸峰轻云

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值