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

 1. 介绍

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

      django 学习笔记【2023-10-16】 - 掘金
        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.rhkb.cn/news/164804.html

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

相关文章

三级等保-linux服务器三权分立设置

安全问题 安全控制点 风险分析 风险等级 标准要求 加固建议 服务器未严格按照系统管理员权限、审计管理员权限、安全管理员权限进行分配管理员账户,未实现管理员用户的最小权限划分。 访问控制 可能存在管理员越权操作的风险 中 d)应授予管理用户所需的最…

虹科活动 | 探索全新AR应用时代,虹科AR VIP研讨会广州场回顾!

文章来源:虹科数字化AR 阅读原文:https://mp.weixin.qq.com/s/7tmYR42Tw5XLn70fm8Nnew 主题演讲 本次研讨会,虹科特邀 “工业AR鼻祖” 美国Vuzix公司的首席应用工程师郑慎方先生进行主题演讲,并邀请到了各界的专业人士和企业代表参…

一款.NET Core开源的基于Vue+ElementUI开发的博客系统 - StarBlog

前言 今天给大家推荐一款.NET Core开源的基于VueElementUI开发的博客系统 - StarBlog。该项目配套详细的文章教程,可以作为 .Net Core 入门项目学习。 官方项目介绍 StarBlog支持Markdown导入的博客。后端基于最新的.Net6和Asp.Net Core框架,遵循REST…

【python】什么是网络爬虫?

什么是网络爬虫? 网络爬虫是一种自动化程序,用于从互联网上抓取信息。这些信息可以是文本、图像、视频、数据表格等各种形式的数据。爬虫程序通过模拟浏览器的行为,自动访问网页、抓取内容,并将其保存或处理。这对于数据挖掘、搜索…

idea设置字体大小快捷键 Ctrl+鼠标上下滑 字体快捷键缩放设置

双击 按住ctrl鼠标滑轮上划放大就好了 这个双击设置为,Ctrl鼠标下滑 字体缩小就好了

爬虫基础 JS逆向

爬虫核心 1. HTTP协议与WEB开发 1. 什么是请求头请求体,响应头响应体 2. URL地址包括什么 3. get请求和post请求到底是什么 4. Content-Type是什么 (1)简介 HTTP协议是Hyper Text Transfer Protocol(超文本传输协议)…

k8s 暴露pod

kubenretes中暴露Pod及Service的6种方式 ,分别为port_forward、hostNetwork、hostPort、nodePort、loadBalancer、Ingress。 下面讲下nodeport nodePort Kubernetes中的service默认情况下都是使用的ClusterIP这种类型,这样的service会产生一个Cluster…

unity(WebGL) 截图拼接并保存本地,下载PDF

截图参考:Unity3D 局部截图、全屏截图、带UI截图三种方法_unity 截图_野区捕龙为宠的博客-CSDN博客 文档下载: Unity WebGL 生成doc保存到本地电脑_unity webgl 保存文件_野区捕龙为宠的博客-CSDN博客 中文输入:Unity WebGL中文输入 支持输…

福昕阅读器打开pdf文档时显示的标题不是文件名

0 Preface/Foreword 1 现象 文件名为:Demo-20231017 打开效果:显示名字为 word template 2 解决方法 2.1 利用打印方式将word生产pdf 在word生成pdf文件时,使用打印方式生成pdf文档。 2.2 删除word文档设置的标题 文件---》信息---》标…

推荐《全职猎人》

电视动画《全职猎人》是由MADHOUSE公司制作的长篇电视动画,改编自日本漫画家富坚义博创作的同名漫画。该动画于2011年10月2日—2014年9月23日在日本电视网协议会首播,全148话。 剧场版动画《全职猎人:绯色的幻影》和《全职猎人:最…

计算机缺失d3dcompiler_47.dll解决方案,如何修复电脑缺失d3d文件

在计算机系统中,DLL文件(动态链接库)是一种重要的共享库,它包含了可被多个程序使用的代码和数据。然而,当某些DLL文件丢失或损坏时,可能会导致程序无法正常运行。本文将介绍四种解决D3DCompiler_47.dll缺失…

二、vue基础语法

一、模板语法 1、文本渲染 使用双花括号语法插入文本 <template><div><h3>msg: {{ message }}</h3></div> </template><script> export default {data() {return {message: "输出信息"}} } </script><style s…

C语言柔性数组

大家好&#xff0c;我们今天来补充一个知识&#xff0c;就是柔性数组。 柔性数组概念&#xff1a; 也许你从来没有听说过柔性数组&#xff08;flexible array&#xff09;这个概念&#xff0c;但是它确实是存在的。 C99 中&#xff0c;结构中的最后一个元素允许是未知大小的数…

隐式类型转换

什么是隐式类型转换&#xff0c;多参数的造函数隐式类型转换&#xff0c;和单参数的构造函数隐式类型转换有什么区别 C中有三种主要的隐式类型转换&#xff1a; 1:多参数的构造函数隐式类型转换 2:单参数的构造函数隐式类型转换 3:成员函数隐式类型转换。…

【企业级SpringBoot单体项目模板 】—— 项目代码管理

&#x1f61c;作 者&#xff1a;是江迪呀✒️本文关键词&#xff1a;SpringBoot项目模版、企业级、模版、代码管理☀️每日 一言&#xff1a;生命力顽强的种子&#xff0c;从不对瘠土唱诅咒的歌。 文章目录 一、第一种&#xff1a;先创建仓库1.1 创建仓库1.2 clone…

黑白棋(Othello, ACM/ICPC World Finals 1992, UVa220)rust解法

你的任务是模拟黑白棋游戏的进程。黑白棋的规则为&#xff1a;黑白双方轮流放棋子&#xff0c;每次必须让新放的棋子“夹住”至少一枚对方棋子&#xff0c;然后把所有被新放棋子“夹住”的对方棋子替换成己方棋子。一段连续&#xff08;横、竖或者斜向&#xff09;的同色棋子被…

jvm的jshell,学生的工具

jshell 在我眼里&#xff0c;只能作为学校教学的一个玩具&#xff0c;事实上官方也做了解释&#xff0c;以下是官方的解释&#xff1a; 在学习编程语言时&#xff0c;即时反馈很重要&#xff0c;并且 它的 API。学校引用远离Java的首要原因 教学语言是其他语言有一个“REPL”…

【C++】:类和对象(中)之类的默认成员函数——构造函数and析构函数

1.类的6个默认成员函数 如果一个类中什么成员都没有&#xff0c;简称为空类 空类中真的什么都没有吗&#xff1f;并不是&#xff0c;任何类在什么都不写时&#xff0c;编译器会自动生成以下6个默认成员函数 默认成员函数&#xff1a;用户没有显式实现&#xff0c;编译器会生成…

全波形反演培训的思考与总结

一. InversionNet 最简单的端到端DL_FWI 1. 网络结构&#xff1a; 图1 构建了一个具有编码器-解码器结构的卷积神经网络&#xff0c;根据地震波动数据模拟地下速度结构。编码器主要由卷积层构建&#xff0c;它从输入地震数据中提取高级特征并将其压缩为单个高维向量。解码器然后…

谷歌云:下一代开发者和企业解决方案的强力竞争者

自从2018年Oracle前研发总裁Thomas Kurian加入谷歌云&#xff08;Google Cloud&#xff09;并出任谷歌云CEO以来&#xff0c;业界对于谷歌云的发展就十分好奇。而谷歌云的前任CEO Diane Greene曾是VMware的创始人之一&#xff0c;那么两任企业级技术和解决方案出身的CEO&#x…