【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 研究课题背景....................................................…...
华为云AI开发平台ModelArts
华为云ModelArts:重塑AI开发流程的“智能引擎”与“创新加速器”! 在人工智能浪潮席卷全球的2025年,企业拥抱AI的意愿空前高涨,但技术门槛高、流程复杂、资源投入巨大的现实,却让许多创新构想止步于实验室。数据科学家…...
基于当前项目通过npm包形式暴露公共组件
1.package.sjon文件配置 其中xh-flowable就是暴露出去的npm包名 2.创建tpyes文件夹,并新增内容 3.创建package文件夹...
ServerTrust 并非唯一
NSURLAuthenticationMethodServerTrust 只是 authenticationMethod 的冰山一角 要理解 NSURLAuthenticationMethodServerTrust, 首先要明白它只是 authenticationMethod 的选项之一, 并非唯一 1 先厘清概念 点说明authenticationMethodURLAuthenticationChallenge.protectionS…...
Robots.txt 文件
什么是robots.txt? robots.txt 是一个位于网站根目录下的文本文件(如:https://example.com/robots.txt),它用于指导网络爬虫(如搜索引擎的蜘蛛程序)如何抓取该网站的内容。这个文件遵循 Robots…...
【决胜公务员考试】求职OMG——见面课测验1
2025最新版!!!6.8截至答题,大家注意呀! 博主码字不易点个关注吧,祝期末顺利~~ 1.单选题(2分) 下列说法错误的是:( B ) A.选调生属于公务员系统 B.公务员属于事业编 C.选调生有基层锻炼的要求 D…...
React---day11
14.4 react-redux第三方库 提供connect、thunk之类的函数 以获取一个banner数据为例子 store: 我们在使用异步的时候理应是要使用中间件的,但是configureStore 已经自动集成了 redux-thunk,注意action里面要返回函数 import { configureS…...
SiFli 52把Imagie图片,Font字体资源放在指定位置,编译成指定img.bin和font.bin的问题
分区配置 (ptab.json) img 属性介绍: img 属性指定分区存放的 image 名称,指定的 image 名称必须是当前工程生成的 binary 。 如果 binary 有多个文件,则以 proj_name:binary_name 格式指定文件名, proj_name 为工程 名&…...
Python基于历史模拟方法实现投资组合风险管理的VaR与ES模型项目实战
说明:这是一个机器学习实战项目(附带数据代码文档),如需数据代码文档可以直接到文章最后关注获取。 1.项目背景 在金融市场日益复杂和波动加剧的背景下,风险管理成为金融机构和个人投资者关注的核心议题之一。VaR&…...
Java毕业设计:WML信息查询与后端信息发布系统开发
JAVAWML信息查询与后端信息发布系统实现 一、系统概述 本系统基于Java和WML(无线标记语言)技术开发,实现了移动设备上的信息查询与后端信息发布功能。系统采用B/S架构,服务器端使用Java Servlet处理请求,数据库采用MySQL存储信息࿰…...
Python Ovito统计金刚石结构数量
大家好,我是小马老师。 本文介绍python ovito方法统计金刚石结构的方法。 Ovito Identify diamond structure命令可以识别和统计金刚石结构,但是无法直接输出结构的变化情况。 本文使用python调用ovito包的方法,可以持续统计各步的金刚石结构,具体代码如下: from ovito…...
