【Python】【进阶篇】19、Django项目创建第一个应用

news/2024/11/22 20:28:49/

目录

  • 19、Django项目创建第一个应用
    • 1. 创建应用
    • 2. 应用的添加

19、Django项目创建第一个应用

Django 项目就是基于 Django 框架开发的 Web 应用,它包含了一组配置和多个应用,我们把应用称之为 App,在前文中对它也做了相应的介绍,比如 auth、admin,它们都属于 APP。

一个 App 就是一个 Python 包,通常一个 App 可以包含模型、视图、模板和 URL 配置文件,可以被应用到多个 Django 项目中,因为它们的本质就是可被重用的 Python 软件包。

1. 创建应用

Django 的设计目标是让开发者关注应用的功能逻辑的实现,所以,创建应用的过程是非常简单的,利用 manage.py 提供的 startapp 命令就可以创建一个APP,具体命令如下所示:

python manage.py startapp index

startapp 同样也属于 manage.py 的子命令,用来创建 Django 的应用。执行这个命令不会在 CMD 命令行看到任何输出,但是,可以在 manage.py 的同级目录下看到多出了一个 index 目录,我们使用 tree 命令来查看 index 的目录结构如下所示:

C:\Users\Administrator\Book\BookStore>python manage.py startapp index
C:\Users\Administrator\Book\BookStore>tree /f index
C:\USERS\ADMINISTRATOR\BOOK\BOOKSTORE\INDEX
├─ admin.py
├─ apps.py
├─ models.py
├─ tests.py
├─ views.py
├─__init__.py
│
└─ migrations├─__init__.py

上面就是一个 index 应用的结构组成,我们对这些文件做逐一的解释:

  • admin.py 用于将 Model 定义的数据表注册到管理后台,是 Django Admin 应用的配置文件;
  • apps.py 用于应用程序本身的属性配置文件;
  • models.py 用于定义应用中所需要的数据表;
  • tests.py 文件用于编写当前应用程序的单元测试;
  • views.py 用来定义视图处理函数的文件;
  • 一级目录下的 init.py 文件标识 index 应用是一个 Python 包;
  • migrations 目录用于存储数据库迁移时生成的文件,该目录下的 init.py 文件标识 migrations 是一个 Python 包。

这就是 index 应用涉及到的所有文件,当然在实际的开发工作中,该应用目录下的文件也不是一成不变的,开发者根据自己的需要会相应的增加文件或者子目录,比如 urls.py 文件或者存储静态文件的 static 目录等。所以大家千万不要认为 Django 框架自动生成的目录,无需我们做其他操作或者更改,这是使用 Django 的一个误区。

2. 应用的添加

应用创建完成后,我们还需要在 settings.py 配置文件中对其进行添加。在《settings.py配置文件详解》一文中我们已经对 INSTALLED_APPS 做了介绍,把我们创建的应用添加到这个列表,如下所示:

INSTALLED_APPS = ['django.contrib.admin','django.contrib.auth','django.contrib.contenttypes','django.contrib.sessions','django.contrib.messages','django.contrib.staticfiles','index',
]

用如上方式添加完成后,就可以让 index 应用的和整个项目融为一体了。

提示:添加应用到 settings.py 中,这个操作看似非常简单,但是初学者却容易忽略或者忘记,所以大家在学习 Django 的过程中一定要注意细节。

本章用了 6 节内容,详细讲解了 Django 项目创建、项目文件配置以及 Django 应用如何创建等,这些属于项目开发前的基础工作。对于一个项目工程而言,基础的项目结构是其精髓,完成了项目结构的搭建,余下的工作就是不断地往里面添加应用功能代码,从而实现具体的业务功能。

通过本章我们可以看出,Django 帮助开发者完成了最为复杂的工作,让开发者只需要关注自己的应用需要提供哪些功能。接下来的章节,就可以正式进入开发应用阶段了,通过实现一些小的功能点,让我们更加全面的了解 Django 框架。


http://www.ppmy.cn/news/57712.html

相关文章

交换机-Exchanges

交换机 Exchanges 概念 RabbitMQ 消息传递模型的核心思想是: 生产者生产的消息从不会直接发送到队列。实际上,通常生产者甚至都不知道这些消息传递传递到了哪些队列中。相反,生产者只能将消息发送到交换机(exchange),交换机工作的内容非常简…

长/短 链接/轮询 和websocket

短连接和长连接 短连接: http协议底层基于socket的tcp协议,每次通信都会新建一个TCP连接,即每次请求和响应过程都经历”三次握手-四次挥手“优点:方便管理缺点:频繁的建立和销毁连接占用资源 长连接: 客…

用ChatGPT问DotNet的相关问题,发现DotNet工程师的前景还不错

本人最近费了九牛二虎之力注册了一个ChatGPT账号,现在就给大家分享一下,问一下关于.NET的问题,看看ChatGPT的AI功能具体如何? 一、C#跟其它语言比较的优势 回答: C#是一门编程语言,它是为 Microsoft 的 …

永磁同步电机(PMSM)无传感器控制基于滑膜观测器Matlab/Simulink仿真分析

文章目录 前言一、状态观测器二、滑膜状态观测器2.1.滑膜观测器的原理2.2.传统的滑膜观测器2.3.改进的滑膜观测器 三、Matlab/Simulink仿真分析3.1.仿真电路分析3.1.1 电机控制模式切换3.1.2 速度环控制3.1.3 电流环控制3.1.4 电机主电路 3.2.仿真结果分析 总结 前言 本章节采…

【前端知识】内存泄漏与垃圾回收机制 (下)

【前端知识相关分享】内存泄漏与垃圾回收机制 (下) 6. 内存泄漏的解决方法6.1 解决方法概述6.2 什么是垃圾6.3 垃圾回收机制的定义及规则6.4 垃圾回收算法的基本流程 7. 垃圾回收的常见算法7.1 引用计数7.2 标记清除7.3 复制算法7.4 标记整理&#xff08…

基于微信小程序的垃圾分类系统的研究与实现(附源码和教程)

1. 简介 本文介绍的事基于微信小程序的垃圾分类系统,主要实现的功能有登录、注册、垃圾分类查询、垃圾预约回收、垃圾分类功能。 2.系统设计与实现 本章节是论文的重点,基于上一章介绍的总体设计框架的搭建,详细对小程序的页面布局、流程设…

LVS +Keepalived 高可用群集部署

一、LVSKeepalived 高可用群集 在这个高度信息化的 IT 时代,企业的生产系统、业务运营、销售和支持,以及日常管理等环节越来越依赖于计算机信息和服务,对高可用(HA)技术的应用需求不断提高,以便提供持续的…

(构造)(两个相邻特殊点之间的不定长度段维护) Dango

C - Dango (atcoder.jp) #include <iostream> #include <string> using namespace std;int main() {int N;cin >> N;string S;cin >> S;S S -; // 末尾‘-’int ans -1;int j -1;for (int i 0; i < N; i) {if (S[i] -) { // 结尾…