【Django 01】环境搭配与项目配置

1. 介绍

https://github.com/Joe-2002/sweettalk-django4.2#readme

Django 是一个使用 Python 编写的开源 Web 应用程序框架,它提供了一套用于快速开发安全、 可扩展和高效的 Web 应用程序的工具和功能。Django 基于 MVC(Model-View-Controller)架构模式,采用了最佳实践,强调代码的可重用性和可维护性。它的设计理念是 DRY(Don't Repeat Yourself), 通过提供许多内置功能和现成的解决方案,使开发人员能够专注于业务逻辑而不必从头开始构建所有组件。此次开源项目旨在为大家讲解基础的 Django 项目创建, 以及简单程序的编写。

Django是Python前沿使用的一种Web应用程序框架,使用这种架构我们可以方便快捷地创建高品质、易维护、数据库驱动的应用程序,在Django框架中还包含许多功能强大的第三方插件,使得Django具有较强的可扩展性。

Python 下有许多款不同的 Web 框架,许多成功的网站和 APP 都基于 Django。

7 款殿堂级的开源 CMS(内容管理系统) - 知乎


2. 过程

虚拟环境

在虚拟环境中安装django依赖包

额外的工具

  1. debug_toolbar 库
  2. django_extensions 库

搭建项目

  1. 新建一个名为 erp 的项目

  2. 在 apps 中,新建名为 data 的 app

  3. 在 apps 中,新建名为 purchase 的 app

运行项目

  1. 配置 settings.py 文件

  2. 运行项目


3. 创建虚拟环境

当前目录下创建虚拟环境:python -m venv erp_django

切换到这个目录:cd erp_django

激活:.\Scripts\activat

退出虚拟环境:deactivate

安装django:pip install django

Django 是一个 Python web 框架,提供许多功能,如 ORM、认证、表单、模板等,它可以帮助你更快、更轻松地开发 web 应用程序。

安装DRF :pip install djangorestframework

DRF 是一个基于 Django 的强大而灵活的 RESTful 框架,它提供了许多工具和库,可帮助你快速开发基于 RESTful API 的 web 应用程序。

安装 Django-Filter: pip install django-filter

Django-Filter 是一个基于 Django 的库,它提供了一种简单、灵活的方式来过滤 Django 模型的查询集。Django-Filter 的 API 允许开发者使用简单的查询表达式,构建和应用复杂的过滤器,从而在查询集中选择和排除数据。

Django-Filter 通过与 DRF Spectacular 的集成,支持 OpenAPI 规范表述的数据过滤和查询,提供了更加优雅的 API 规范方案。

安装 Django Spectacular: pip install drf_spectacular

DRF Spectacular 是 DRF 的 OpenAPI 规范工具。它可以自动构建和生成 OpenAPI 规范文档,并提供方便的 API 测试工具,使你能够更加轻松地创建、测试和维护 RESTful API。同时,它也支持集成 Django Filter,允许你通过 URL 参数过滤查询数据。

安装 debug_toolbar 库: pip install django-debug-toolbar

安装 django_extensions 库: pip install django_extensions

建议都加上清华镜像源:-i https://pypi.tuna.tsinghua.edu.cn/simple

之前都是用conda install 的方式创建虚拟环境

python -m venv erp_venvconda install 是用于创建和管理虚拟环境的不同工具,它们之间有一些重要区别:

  1. 工具:

    • python -m venv erp_venv 使用的是 Python 自带的 venv 模块,它是 Python 标准库的一部分,用于创建虚拟环境。这是 Python 官方推荐的创建虚拟环境的方式。

    • conda install 是 Anaconda 或 Miniconda(数据科学和机器学习工具的发行版)的命令,用于创建和管理 Conda 环境。Conda 是一个跨平台的包管理系统和环境管理工具,主要用于数据科学和科学计算。

  2. 生态系统和包管理:

    • conda 提供了一个广泛的包管理系统,包括数千个数据科学、机器学习和科学计算库。Conda 环境可以轻松切换不同版本的库,使其成为数据科学项目的强大工具。

    • python -m venv 使用 Python 的 pip 工具来安装和管理 Python 包。虽然 pip 生态系统也很丰富,但在数据科学领域的一些特定需求上可能不如 Conda 强大。


4. 创建 Django 项目和 APP

当前目录下创建项目: django-admin startproject ErpDjangoProject

cd 到ErpDjangoProject路径

运行 django-admin startapp erp_test

打开 app 下 apps.py 文件

将 name 变量赋值修改

去掉apps.

4.1 项目组成

在运行上文的命令后项目自动生成了

  • 项目名文件夹
  • 子目录下同名子文件夹
  • manage.py文件

manage.py提供了一种命令行工具,允许你以多种方式与该Django项目进行交互。如:python manage.py help,能列出它所能做的事情。注意,此文件一般情况下不需要改动。

4.2 子目录文件组成

  • init.py: 是一个空文件,作用是所在的这个目录可以被当作包使用。

  • settings.py:该Django项目整体配置文件。(该文件非常重要,建议认真理解这个文件中可用的设置类型及其默认值。)

  • urls.py:Django项目的URL设置。可视其为你的django网站的目录。

  • asgi.py与wsgi.py:常见的网关接口协议:CGI,FastCGI,WSGI,ASGI。asgi.py是异步服务器网关接口项目配置文件。ASGI描述了Python Web应用程序和Web服务器之间的通用接口。与WSGI不同的是,ASGI允许每个应用程序有多个异步事件。另外,ASGI支持同步和异步应用程序。开发人员可以将原有的同步WSGI Web应用程序迁移到ASGI,也可以使用ASGI构建新的异步Web应用程序。

4.3 应用文件组成

该文件夹下自动生成了

init.py 是一个空文件,作用同前。

admin.py文件跟网站的后台管理相关。

models.py文件跟数据库操作相关。主要用一个 Python 类来描述数据表。运用这个类,你可以通过简单的 Python 的代码来创建、检索、更新、删除 数据库中的记录而无需写一条又一条的SQL语句。

views.py 包含了页面的业务逻辑,接收浏览器请求,进行处理,返回页面操作相关。

tests.py文件用于开发测试用例,在实际开发中会有专门的测试人员使用。

apps.py文件夹是django1.10之后增加的,通常里面包含对应用的配置。

migrations:django 1.8之后推出的migrations机制使django数据模式管理更容易。migrations机制有两个指令,makemigrations和migrate。makemigrations指令是用models里面的model和当前的migrations代码里面的model做对比,如果有新的修改,就生成新migrations代码。migrate指令是用migrations目录中代码文件和django数据库django_migrations表中的代码文件做对比,如果表中没有,那就对没有的文件按顺序及依赖关系做migrate apply,然后再把代码文件名加进migrations表中。

migrations文件夹里面自动生成了_init_.py文件

5 配置 settings.py 和 启动项目

5.1 设置setting.py文件

5.1.1 加入安装的库

'apps.erp_test'

'rest_framework',

'django_filters',

'drf_spectacular'

5.1.2 加入新增的APP

apps.erp_test

去掉apps.

5.2 启动项目

运行项目先执行数据库相关操作,再启动 django 项目

5.2.1 数据库迁移操作

​python manage.py makemigrations​​​​

​python manage.py migrate

5.2.2 启动Django服务

python manage.py runserver

加端口

相关推荐
狗头大军之江苏分军42 分钟前
《潮水漫过十七岁》开学了
后端
Patrick在香港1 小时前
Claude Prompt 香港场景:公文里「今日」落在 6 个日历日上,「翌日」锚错了 5 天
python·自然语言处理·正则表达式·claude·数据清洗
苏三说技术1 小时前
如何看待GPT-6在UP主众测中碾压夺冠?它是现在最强大模型吗?
后端
mldong2 小时前
一份 JSON,一条能跑的审批流:把报销流程送上工作流引擎
后端·架构
wno7042 小时前
Spring Boot WebFlux增删改查
java·spring boot·后端
Captaincc2 小时前
AI用量v0.1.11更新发布 新增 jusage doctor 诊断指令 托盘展示token 和余额 新增 AutoClaw 支持
前端·后端·vibecoding
YsyaaabB2 小时前
Python 数值分析
python
阿洛学长2 小时前
计算机二级 Python 基本操作题(15 分)真题笔记(0101 ~ 1903 全套)
python·pycharm
weixin199701080162 小时前
[特殊字符]️《二手ERP对接电商平台的总体方案:统一数据模型 + 事件驱动 + 灰度上线6原则》(附Python源码)
大数据·python
aramae3 小时前
模拟实现strlen()函数 (C语言)
c语言·开发语言·后端