【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

 加端口

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/139138.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Windows工业三防平板全功能NFC近距离感应一维/二维扫描

Windows系统工业三防平板电脑是一种在智慧工厂仓储物流、MES数采、车载设备、设备检测、自动化控制等领域广泛应用的先进设备。此外,它还在公共服务领域,如高速交通、物流运输、电力检测、公务执法、银行金融、船舶装备、户外勘测、建筑工程、汽车检测、…

使用vscode + vite + vue3+ element3 搭建vue3脚手架

技术栈 开发工具:VSCode 代码管理:Git 前端框架:Vue3 构建工具:Vite 路由:vue-router 状态管理:vuex AJAX:axios UI库:element-ui 3 数据模拟:mockjs css预处理&#xf…

0基础学习VR全景平台篇 第108篇:全景图细节处理(下,航拍)

上课!全体起立~ 大家好,欢迎观看蛙色官方系列全景摄影课程! (调色前图库) (原图-大图) 一、导入文件 单击右下角导入按钮,选择航拍图片所在文件夹,选择图片&#xff0…

零基础学习HTML5(列表、表格、表单)

01-列表 作用&#xff1a;布局内容排列整齐的区域。 列表分类&#xff1a;无序列表、有序列表、定义列表。 无序列表 作用&#xff1a;布局排列整齐的不需要规定顺序的区域。 标签&#xff1a;ul 嵌套 li&#xff0c;ul 是无序列表&#xff0c;li 是列表条目。 <ul>…

01. 汇编LED驱动实验

01. 汇编LED驱动实验 汇编原理分析为什么要学习Cortex—A汇编STM32IO初始化流程IMX6UL初始化流程 汇编基础处理器内部数据传输指令存储器访问指令 编写驱动编译程序烧写bin文件 汇编原理分析 为什么要学习Cortex—A汇编 需要用汇编初始化一些SOC外设使用汇编初始化DDR&#x…

【mfc/VS2022】计图实验:绘图工具设计知识笔记2

按钮添加处理程序 1.类视图找到对应类右击&#xff0c;类向导 2. 找到对应的的按钮id 如何将画出的两个相交的圆都显示出来&#xff0c;而不是重叠&#xff08;如下图&#xff09;隐藏了一条圆弧 问题如图&#xff1a; 因为矩形和圆心其实是个背景色的封闭图形&#xff0c;所…

如何修复-谷歌浏览器-打开任何一个网页都显示崩溃

早上上班&#xff0c;一如既往的使用谷歌浏览器时&#xff0c;发现异常。 首先是&#xff0c;右下角有个弹窗提示某某插件需要点击更新&#xff0c;然后点了也没用&#xff0c;然后就是打开任何网页都提示‘喔唷 崩溃了’的字眼。 奇怪呀&#xff0c;咱也是第一次碰见这种问题…

树叶识别系统python+Django网页界面+TensorFlow+算法模型+数据集+图像识别分类

一、介绍 树叶识别系统。使用Python作为主要编程语言开发&#xff0c;通过收集常见的6中树叶&#xff08;‘广玉兰’, ‘杜鹃’, ‘梧桐’, ‘樟叶’, ‘芭蕉’, ‘银杏’&#xff09;图片作为数据集&#xff0c;然后使用TensorFlow搭建ResNet50算法网络模型&#xff0c;通过对…

中小企业实现项目管理数字化的关键步骤

在当今竞争激烈的商业环境中&#xff0c;中小企业及初创团队面临着多重项目管理挑战&#xff0c;传统的手动管理方式已经无法满足高效率、高质量的项目执行需求。 那么中小型及成长性企业在项目管理方面&#xff0c;往往会遇到哪些困境呢&#xff1f; 首先&#xff0c;资源浪…

GitHub仓库的README文件无法显示图片问题-非域名污染原因

之前上自己仓库就偶然发现图片不显示现象&#xff0c;当时以为是网络问题就没有留意这事。但是一直不显示就有问题了&#xff01;于是网上搜了一遭&#xff0c;看见大家遇到此现象的原因普遍归于DNS污染1而我的问题原来是MarkDown格式&#xff01; 在图片语法前不要加分区语法…

【数据结构】栈(C语言实现)

&#x1f4d9; 作者简介 &#xff1a;RO-BERRY &#x1f4d7; 学习方向&#xff1a;致力于C、C、数据结构、TCP/IP、数据库等等一系列知识 &#x1f4d2; 日后方向 : 偏向于CPP开发以及大数据方向&#xff0c;欢迎各位关注&#xff0c;谢谢各位的支持 栈 1.栈1.1栈的概念及结构…

python每日一练(9)

&#x1f308;write in front&#x1f308; &#x1f9f8;大家好&#xff0c;我是Aileen&#x1f9f8;.希望你看完之后&#xff0c;能对你有所帮助&#xff0c;不足请指正&#xff01;共同学习交流. &#x1f194;本文由Aileen_0v0&#x1f9f8; 原创 CSDN首发&#x1f412; 如…