如何创建纯净版Django项目并启动?——让Django更加简洁

目录

[1. Django的基本目录结构](#1. Django的基本目录结构)

[2. 创建APP](#2. 创建APP)

[2.1 创建app](#2.1 创建app)

[2.2 配置文件介绍](#2.2 配置文件介绍)

[3. 迁移数据库文件](#3. 迁移数据库文件)

[3.2 连接数据库](#3.2 连接数据库)

[3.1 创建迁移文件](#3.1 创建迁移文件)

[3.2 同步数据库](#3.2 同步数据库)

[4. 纯净版Django创建](#4. 纯净版Django创建)

[4.1 剔除APP](#4.1 剔除APP)

[4.2 剔除中间件](#4.2 剔除中间件)

[4.3 剔除模板引擎](#4.3 剔除模板引擎)

[5. 最终](#5. 最终)


1. Django的基本目录结构

在我们创建Django项目之后,我们会看到以下这种的初始化项目结构

但只有这样的项目结构,我们是无法进行编写项目的

于是,就有了APP这个概念:

APP:主要用于业务功能模块的开发

2. 创建APP

2.1 创建app

我们打开终端,并输入如下命令:

python 复制代码
python manage.py startapp app01 

# python manage.py  是固定的,代表python脚本,主要用于django中的项目管理
# startapp   创建app
# app01   你的app名字,也就是功能模块名称

2.2 配置文件介绍

尤其要说一下的就是models.py:

models主要是数据库模型文件,我们可以通过类的形式 来代表每一张变量的形式 代表每一个字段,并且通过相关语法建立一对多、多对多等相关关系

主要是通过ORM来进行操作数据库的,通过操作类来执行SQL语句

ORM:Object-Relational Mapping , 对象关系映射 。它主要用于关系型数据库面向对象 之间的映射关系,使得我们可以通过操作面向对象的形式来操作数据库

3. 迁移数据库文件

创建完APP后,我们需要进行数据库的初始化,将Django与数据库之间建立映射关系

包括我们定义完数据库模型之后,我们都需要进行迁移

3.2 连接数据库

在进行数据库文件迁移之前,我们需要进行连接数据库:

  1. 进入settings.py
  2. 进行配置文件修改

3.1 创建迁移文件

我们需要先同步Django中自带的一些数据库文件:

python 复制代码
python manage.py makemigrations

当然,我们在执行这个操作的时候,可能会遇到这个问题:

大概意思就是缺少mysql的引擎模块,我们pip install mysqlclient就行了

3.2 同步数据库

生成迁移文件之后,我们可以继续执行指令,并同步到mysql中去

python 复制代码
python manage.py migrate

看到一大堆ok就行啦

4. 纯净版Django创建

当然,你会发现数据库中多出了好多表:

其实很多表,有时候我们是用不上的,这导致Django变得臃肿,会比flask重量很多

于是,创建纯净版Django对我们来说,可以做得更加轻量化

Django纯净和Flask等轻量级框架的对比:

  • Flask,一个py文件项目,基于蓝图项目创建结构化。
  • Django,默认的配置,剔除 好几个文件。

4.1 剔除APP

我们进入到settings里面去:

可以看到有一行INSTALLED_APPS

这是django所安装的APP应用,在django加载的时候,会应用这些APP。现在我们来看看这些app:

上面有一些配置文件我们平时不需要用到的:比如admin,我们会单独写后台管理。或者auth,我们也做自定义认证组件。

所以某些app我们可以直接进行注释:

4.2 剔除中间件

当然,除了app剔除之后,我们所对应的中间件也是需要剔除的

中间件:Django中的一大组件,主要用于请求或响应之前、之后做的一些处理。相当于一个装饰器,额外处理请求。

4.3 剔除模板引擎

在模板引擎中,也有配置与APP相关,同样也要处理掉:

模板引擎:Django中用于配置模板的设置选项,用于生成HTML的工具,可以将动态数据加载到静态HTML中。

5. 最终

于是,我们重新执行一次迁移(当然,之前的数据库文件和迁移文件都需要删除):

注意:

这个也是与admin相关的,也需要注释掉

urls.py里面:

最终:

看,是不是比之前轻量很多了呢?

当我们需要什么组件的时候,我们再自己加回来。

相关推荐
码农小旋风15 分钟前
详解K8S--声明式API
后端
Peter_chq16 分钟前
【操作系统】基于环形队列的生产消费模型
linux·c语言·开发语言·c++·后端
Yaml439 分钟前
Spring Boot 与 Vue 共筑二手书籍交易卓越平台
java·spring boot·后端·mysql·spring·vue·二手书籍
小小小妮子~41 分钟前
Spring Boot详解:从入门到精通
java·spring boot·后端
hong16168843 分钟前
Spring Boot中实现多数据源连接和切换的方案
java·spring boot·后端
阡之尘埃44 分钟前
Python数据分析案例61——信贷风控评分卡模型(A卡)(scorecardpy 全面解析)
人工智能·python·机器学习·数据分析·智能风控·信贷风控
睡觉谁叫~~~2 小时前
一文解秘Rust如何与Java互操作
java·开发语言·后端·rust
丕羽4 小时前
【Pytorch】基本语法
人工智能·pytorch·python
2401_865854884 小时前
iOS应用想要下载到手机上只能苹果签名吗?
后端·ios·iphone
bryant_meng4 小时前
【python】Distribution
开发语言·python·分布函数·常用分布