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

【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
  • 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&#xf…...

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…...

智能化安全巡更巡查系统—提升安全管理效率

传统的巡检都是手工完成,记录、拍照,回到办公室打印表单再交给作业队伍整改,再去现场核实复查,流程繁琐,效率低。而且大部分工地为了减少麻烦,人员往往都是口头沟通,存在很大质量风险&#xff0…...

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种可选方案&#xff0c;3个To C&#xff08;面向AI产品经理的职业规划诊断、求职内推套餐、模拟面试&#xff09;&#xff0c;1个To B&#xff08;面向AI企业/投资机构/券商等&#xff09;。 方案A&#xff1a;职业规划诊断 适合人群&#xff1a;AI产品经理 or 想转型A…...

变更管理制度

1、总则 1.1、目的 为规范XXXXX单位各信息系统需求变更操作&#xff0c;增强需求变更的可追溯性&#xff0c;控制需求变更风险&#xff0c;特制定本制度。 1.2、范围 本制度适用于XXXXX单位应用系统、网络系统等已开发或采购完毕并正式上线、且由软件开发组织移交给应用管理…...

电源特性测试之电源模块负载调整率测试方法及测试条件

负载调整率是衡量电源好坏的重要指标&#xff0c;它反映的是当负载电流变化时&#xff0c;稳压电源输出电压相应的变化情况。好的电源负载变化时引起的输出变化较小&#xff0c;通常是在3%-5%。负载调整率是电源模块测试的一个重要步骤&#xff0c;今天纳米软件将为大家介绍负载…...

基于单片机的双交通灯控制设计

目录 摘要...................................................................................... 2 第一章 绪论........................................................................ 5 1.1 研究课题背景....................................................…...

手把手教你学Simulink——电动汽车防溜坡功能中的电机零扭矩闭环保持控制仿真

目录 手把手教你学Simulink——电动汽车防溜坡功能中的电机零扭矩闭环保持控制仿真 一、背景与挑战 1.1 为什么“关断电机”不等于“刹住车”? 1.2 核心痛点与防溜坡设计目标 二、系统架构与核心控制推导 2.1 整体架构:从“驾驶意图”到“零速电磁抱死” 2.2 核心数学推…...

YOLOv8实时目标检测与自适应控制技术在游戏辅助系统中的应用研究

YOLOv8实时目标检测与自适应控制技术在游戏辅助系统中的应用研究 【免费下载链接】RookieAI_yolov8 基于yolov8实现的AI自瞄项目 AI self-aiming project based on yolov8 项目地址: https://gitcode.com/gh_mirrors/ro/RookieAI_yolov8 技术挑战剖析&#xff1a;实时游…...

终极微信小程序逆向解析指南:wxappUnpacker专业实战解析

终极微信小程序逆向解析指南&#xff1a;wxappUnpacker专业实战解析 【免费下载链接】wxappUnpacker forked from https://github.com/qwerty472123/wxappUnpacker 项目地址: https://gitcode.com/gh_mirrors/wxappu/wxappUnpacker 微信小程序逆向解析是开发者深入理解小…...

全志T3工业级评估板深度评测:国产化、接口性能与Docker容器化实践

1. 开箱初探&#xff1a;一份诚意满满的工业级“全家桶”作为一名在嵌入式硬件开发领域摸爬滚打了十多年的老工程师&#xff0c;我经手过的评估板、开发板少说也有上百款。从早期的ARM9到现在的多核A系列、RISC-V&#xff0c;每次开箱都像是一次探险。但这次拿到创龙科技&#…...

MarkdownViewer++:Notepad++终极Markdown实时预览插件完整指南

MarkdownViewer&#xff1a;Notepad终极Markdown实时预览插件完整指南 【免费下载链接】MarkdownViewerPlusPlus A Notepad Plugin to view a Markdown file rendered on-the-fly 项目地址: https://gitcode.com/gh_mirrors/ma/MarkdownViewerPlusPlus 你是否曾在Notepa…...

北京欧雷新宇助力重庆机电工程高级技工学校建成“动捕+虚拟拍摄”实训基地,赋能影视动漫人才培养

项目名称&#xff1a;重庆机电工程高级技工学校“计算机动画与制作实训基地”项目 地点&#xff1a;重庆市 应用专业&#xff1a;影视动漫设计与制作专业 项目概述: 近日&#xff0c;北京欧雷新宇动画科技有限公司作为核心产品与技术提供商并承担整体实施的“计算机动画与…...

如何在Windows 11上轻松安装Android应用?APK安装器完整教程

如何在Windows 11上轻松安装Android应用&#xff1f;APK安装器完整教程 【免费下载链接】APK-Installer An Android Application Installer for Windows 项目地址: https://gitcode.com/GitHub_Trending/ap/APK-Installer 想在Windows电脑上运行Android应用却不想安装笨…...

抖音视频批量下载工具终极指南:3分钟实现高效无水印下载

抖音视频批量下载工具终极指南&#xff1a;3分钟实现高效无水印下载 【免费下载链接】douyin-downloader A practical Douyin downloader for both single-item and profile batch downloads, with progress display, retries, SQLite deduplication, and browser fallback sup…...

2.1 C语言 ECG模块设计(推送)

文章目录1. 目标&#xff1a;2. 功能需求&#xff1a;3. 概要设计&#xff1a;3.1 系统架构&#xff1a;3.2 组件设计&#xff1a;4. 详细设计4.1 ECG_Module&#xff1a;4.1.1 职责&#xff1a;4.1.2 属性&#xff1a;4.1.3 方法&#xff1a;4.2 TMDQueue&#xff1a;4.2.1 职…...

CANN Ascend C数据转换临时空间API

GetTransDataMaxMinTmpSize 【免费下载链接】asc-devkit 本项目是CANN 推出的昇腾AI处理器专用的算子程序开发语言&#xff0c;原生支持C和C标准规范&#xff0c;主要由类库和语言扩展层构成&#xff0c;提供多层级API&#xff0c;满足多维场景算子开发诉求。 项目地址: http…...