当前位置: 首页 > news >正文

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

目录

1. Django的基本目录结构

 2. 创建APP

2.1 创建app

2.2 配置文件介绍

3. 迁移数据库文件

3.2 连接数据库

3.1 创建迁移文件

3.2 同步数据库

 4. 纯净版Django创建

4.1 剔除APP

 4.2 剔除中间件

 4.3 剔除模板引擎

 5. 最终


1. Django的基本目录结构

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

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

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

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

 2. 创建APP

2.1 创建app

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

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 manage.py makemigrations

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

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

3.2 同步数据库

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

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里面:

 

最终:

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

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

http://www.lryc.cn/news/327410.html

相关文章:

  • 蓝桥杯 2022 省A 选数异或
  • 计数器选型参数,结构原理,工艺与注意问题总结
  • Android 性能优化实例分享-内存优化 兼顾效率与性能
  • IT服务监督管理案例分析题
  • 【spring】AbstractApplicationContext 的refresh() 方法学习
  • 零基础10 天入门 Web3之第1天
  • 【1】网络协议基础概念
  • flutter 中 GetxController 和 GetxService 的区别和使用场景
  • Python+Django+Yolov5路面墙体桥梁裂缝特征检测识别html网页前后端
  • uniApp使用XR-Frame创建3D场景(7)加入点击交互
  • 单元测试11213123231313131231231231
  • libVLC 捕获鼠标、键盘事件
  • 京东云0基础搭建帕鲁服务器_4核16G和8核32G幻兽帕鲁专用服务器
  • OpenCV 如何使用 XML 和 YAML 文件的文件输入和输出
  • playbook的介绍、应用与实施
  • uniApp使用XR-Frame创建3D场景(5)材质贴图的运用
  • 阿里云CentOS7安装Hadoop3伪分布式
  • 78.子集90.子集2
  • 基于Ubuntu的Linux系统安装jsoncpp开发包过程
  • 葵花卫星影像应用场景及数据获取
  • Jenkins升级中的小问题
  • Apache Hive的基本使用语法(二)
  • 基于单片机16位智能抢答器设计
  • idea默认代码生成脚本修改
  • StarRocks实战——多点大数据数仓构建
  • jmeter总结之:Regular Expression Extractor元件
  • 快速上手Spring Cloud 七:事件驱动架构与Spring Cloud
  • leetcode 1997.访问完所有房间的第一天
  • 【InternLM 实战营第二期笔记】书生·浦语大模型全链路开源体系及InternLM2技术报告笔记
  • Netty对Channel事件的处理以及空轮询Bug的解决