【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依赖包
额外的工具
- debug_toolbar 库
- django_extensions 库
搭建项目
-
新建一个名为 erp 的项目
-
在 apps 中,新建名为 data 的 app
-
在 apps 中,新建名为 purchase 的 app
运行项目
-
配置 settings.py 文件
-
运行项目
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_venv和conda install是用于创建和管理虚拟环境的不同工具,它们之间有一些重要区别:
工具:
python -m venv erp_venv使用的是 Python 自带的venv模块,它是 Python 标准库的一部分,用于创建虚拟环境。这是 Python 官方推荐的创建虚拟环境的方式。
conda install是 Anaconda 或 Miniconda(数据科学和机器学习工具的发行版)的命令,用于创建和管理 Conda 环境。Conda 是一个跨平台的包管理系统和环境管理工具,主要用于数据科学和科学计算。生态系统和包管理:
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
- apps.py
- models.py
- tests.py
- views.py
- migrations文件夹。
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

加端口

相关文章:
【Django 01】环境搭配与项目配置
1. 介绍 https://github.com/Joe-2002/sweettalk-django4.2#readme Django 是一个使用 Python 编写的开源 Web 应用程序框架,它提供了一套用于快速开发安全、 可扩展和高效的 Web 应用程序的工具和功能。Django 基于 MVC(Model-View-Controller…...
PyCharm配置运行参数
...
ChatGPT AIGC 实现Excel 交叉查找 Index+match 函数
行与列交叉多条件查找需求如下: 这个需求要使用Excel中最经典的组合函数Index+match函数。 函数公式可以交给ChatGPT AIGC来实现。 Prompt: 有一个表格A列为品牌,B列为月份,C列为销量,61行数据,请写出Excel函数公式根据E3单元格的品牌与F2单元格的月份查找对应的销量,…...
【前端学习】—多种方式实现数组拍平(十一)
【前端学习】—多种方式实现数组拍平(十一) 一、数组拍平 数组拍平也叫数组扁平化、数组拉平、数组降维,指的是把多维数组转化为一维数组。 二、使用场景 复杂场景下的数据处理(echarts做大屏数据展示) 三、如何实…...
智慧远程医疗服务:从零开始搭建互联网医院APP
互联网医院APP作为远程医疗服务的一部分,正在为患者和医生带来更便捷的医疗体验。本文将探讨如何从零开始构建一个互联网医院APP,包括关键步骤、技术要点和挑战。 一、确定项目目标和范围 在开始之前,您需要明确定义您的互联网医院APP的目标…...
ADAS可视化系统,让自动驾驶更简单 -- 入门篇
随着车载芯片的升级、技术的更新迭代,可视化ADAS逐渐变成汽车的标配走入大家的生活中,为大家的驾车出行带来切实的便捷。那么你了解HMI端ADAS的实现过程吗?作为ADAS可视化系统的入门篇,就跟大家聊一聊目前较常见的低消耗的一种ADA…...
探索低代码技术
低/无代码的高速发展,属于软件市场的选择,相较于传统编写代码的开发方式,低/无代码开发效率高、投入成本低、技术门槛也更低,未来更多软件应用将使用低/无代码技术完成,这也是趋势。 身为开发人员经常需要花大量时间在…...
头歌的数据库的第二次作业的答案
目录 MySQL-视图 第1关:创建所有保险资产的详细记录视图 第2关:基于视图的查询 MySQL数据库 - 连接查询 第1关:内连接查询 第2关:外连接查询 第3关:复合条件连接查询 MySQL数据库 - 子查询 第1关:…...
基于R329 SOC智能音响开发编译环境搭建
R329智能音响开发编译环境搭建 是否需要申请加入数字音频系统研究开发交流答疑群(课题组)?可加我微信hezkz17, 本群提供音频技术答疑服务, R329编译命令 source build/envsetup.sh lunch make -j4 pack 编译工程选择 baidu_panshan...
libplctag开源库的API介绍
文章目录 1 开源库概要2 API介绍2.1 Tag Model(标签模型)2.2 Status Codes(状态码)2.3 Versions and Checking Library Compatibility(版本和检查库的兼容性)2.4 Tag Life Cycle(标签生命周期&a…...
智能化安全巡更巡查系统—提升安全管理效率
传统的巡检都是手工完成,记录、拍照,回到办公室打印表单再交给作业队伍整改,再去现场核实复查,流程繁琐,效率低。而且大部分工地为了减少麻烦,人员往往都是口头沟通,存在很大质量风险࿰…...
SAP MM学习笔记36 - 释放支付保留的发票
SAP中,请求书照合之后,发现不一致,就会支付保留。 支付保留,可以参考如下文章。 SAP MM学习笔记34 - 请求书照合中的支付保留(发票冻结)_东京老树根的博客-CSDN博客 当然发现不一致之后,如果不…...
MySQL数据库的ID列添加索引
要为MySQL数据库的ID列添加索引,可以使用以下语法: ALTER TABLE table_name ADD INDEX index_name (id);其中,table_name是要添加索引的表名,index_name是索引的名称,id是要添加索引的列名。 例如,如果要…...
LuaJIT编写的解析十六进制数据
以下是使用LuaJIT编写的解析十六进制数据并将uint16转换为JSON的示例代码: local ffi require("ffi") local bit require("bit") local cjson require("cjson")-- 定义结构体 ffi.cdef[[typedef struct {uint16_t value;} uint16…...
【SA8295P 源码分析 (一)】09 - XBL Loader 加载 QSEE、SEC、CPUCPFW、QHEE、APPSBL过程分析
【SA8295P 源码分析】09 - XBL Loader 加载 QSEE、SEC、CPUCPFW、QHEE、APPSBL过程分析 一、QSEE二、SEC三、CPUCPFW四、QHEE五、APPSBL系列文章汇总见:《【SA8295P 源码分析 (一)】系统部分 文章链接汇总 - 持续更新中》 本文链接:《【SA8295P 源码分析 (一)】09 - XBL Load…...
封装一个Element-ui生成一个可行内编辑的表格(vue2项目)
这个封装的是一个供整个项目使用的表格,可多次复用.放在一个全局使用的公共组件文件下. 大致功能介绍,封装自定义指令,点击获得焦点,显示输入框,失去焦点显示文本内容,类型是字典决定类型,图片可以显示图片名还是上传图片 子组件 <script> export default {props: {//生…...
hanniman 1v1 咨询
一共4种可选方案,3个To C(面向AI产品经理的职业规划诊断、求职内推套餐、模拟面试),1个To B(面向AI企业/投资机构/券商等)。 方案A:职业规划诊断 适合人群:AI产品经理 or 想转型A…...
变更管理制度
1、总则 1.1、目的 为规范XXXXX单位各信息系统需求变更操作,增强需求变更的可追溯性,控制需求变更风险,特制定本制度。 1.2、范围 本制度适用于XXXXX单位应用系统、网络系统等已开发或采购完毕并正式上线、且由软件开发组织移交给应用管理…...
电源特性测试之电源模块负载调整率测试方法及测试条件
负载调整率是衡量电源好坏的重要指标,它反映的是当负载电流变化时,稳压电源输出电压相应的变化情况。好的电源负载变化时引起的输出变化较小,通常是在3%-5%。负载调整率是电源模块测试的一个重要步骤,今天纳米软件将为大家介绍负载…...
基于单片机的双交通灯控制设计
目录 摘要...................................................................................... 2 第一章 绪论........................................................................ 5 1.1 研究课题背景....................................................…...
OpenClaw社区贡献指南:为Qwen3-14b_int4_awq开发并分享自定义技能
OpenClaw社区贡献指南:为Qwen3-14b_int4_awq开发并分享自定义技能 1. 为什么我们需要更多社区技能 上周我尝试用OpenClaw自动整理电脑里堆积如山的PDF论文时,发现现有的文件处理技能无法识别某些特殊格式的学术文献。这个痛点让我意识到:Op…...
掰开揉碎魔改claudecode后,我盯着 Claude Code 跑了一圈,终于看懂顶级 AI Agent是如何炼成的
开头先来一句狠的很多人以为,Claude Code 之所以强,是因为模型更聪明。但我把它运行时真正生效的 Payload 抓出来之后,结论反而更明确了:顶级 AI Agent 的差距,很多时候不在模型本身,而在它背后那套“怎么约…...
OpenClaw新手入门:千问3.5-9B镜像一键部署与初体验
OpenClaw新手入门:千问3.5-9B镜像一键部署与初体验 1. 为什么选择这个组合? 去年冬天,我第一次在本地尝试用OpenClaw自动整理电脑上的照片。当时对接的是GPT-3.5,每次识别图片内容都要消耗大量token,一个月下来账单让…...
weixin279基于微信小程序的场地预约设计与实现+ssm(文档+源码)_kaic
第4章 系统实现 4.1 管理员权限的功能模块实现界面 4.1.1系统登录功能模块的界面实现 当系统调试运行好后,可以先使用系统登录功能,本功能相当于系统的屏障。在本界面里可以看到系统的标题和用户名、密码的文本框。在登录界面里还加入了登录按钮。系统…...
OpenClaw学术研究助手:Qwen3.5-9B-AWQ-4bit解析论文图表数据
OpenClaw学术研究助手:Qwen3.5-9B-AWQ-4bit解析论文图表数据 1. 为什么需要自动化论文图表解析 去年冬天,我在整理一篇关于机器学习模型压缩的综述论文时,遇到了一个典型的研究痛点:需要从32篇相关文献的PDF中提取实验数据表格进…...
从设计到上线:基于快马平台开发一个具备完整功能的qclaw官网实战指南
从设计到上线:基于快马平台开发一个具备完整功能的qclaw官网实战指南 最近接手了一个qclaw官网的开发需求,需要从零开始构建一个具备完整功能的官方网站。经过调研,我选择了InsCode(快马)平台作为开发环境,因为它不仅提供了完整的…...
STM32单片机技术优势与应用指南
1. STM32的崛起背景与技术优势2007年之前,8位单片机市场被8051架构主导,16位市场则有MSP430等产品。这些传统MCU在简单控制领域表现出色,但随着物联网时代的到来,其局限性逐渐显现:性能瓶颈:8位机的处理能力…...
寒武纪高级系统软件工程师面试技术解析
1. 寒武纪高级系统软件工程师面试全解析 作为一名在芯片验证领域摸爬滚打多年的工程师,去年我经历了寒武纪高级系统软件工程师岗位的完整面试流程。这个岗位对系统底层和芯片验证的要求非常高,今天我就把两轮技术面的核心问题拆解给大家,并分…...
ExaGrid入围2026年网络计算奖最终评选
ExaGrid在该年度行业奖项评选中获得11个类别的提名 ExaGrid是全球最大的独立备份存储厂商,提供分层备份存储解决方案,具备最全面的安全防护和AI驱动的保留时间锁定功能,可用于勒索软件恢复。该公司今日宣布,其在年度网络计算奖评选…...
2026年最好的AI创业机会,就藏在你压根看不上的角落里
还在焦虑AI会替代你?抢你饭碗?你根本不知道,现在有一群人,正在用AI给自己“印钞票”他们不是搞什么ChatGPT插件,也不是训练大模型,他们就盯着那些看着不起眼,甚至你压根看不上的小事。利用这些小…...
