Django简介与虚拟环境安装Django
目录
1.Django简介
1.1 Django 的核心特点
1.2 Django 的核心组件
1.3 Django 的应用场景
1.4 总结
2.基础环境建立
2.1 创建虚拟环境
2.1.1 使用 virtualenv 创建虚拟环境
2.1.2 使用 venv 创建虚拟环境
2.2 激活虚拟环境
2.2.1 在 Windows 上
2.2.2 在 macOS 或 Linux 上
2.3 安装 Django
2.4 创建 Django 项目
2.5 启动开发服务器
2.6 停用虚拟环境
2.7 保存依赖
2.8 小结
1.Django简介
Django 是一个开源的 Python Web 框架,它是为帮助开发者快速构建高效、可扩展且安全的 Web 应用而设计的。Django 强调 "DRY"(Don't Repeat Yourself) 原则,尽量减少代码重复,并提供很多内置功能,帮助开发者快速实现复杂的 Web 应用。
1.1 Django 的核心特点
(1)快速开发
- Django 的设计目标之一是让开发者能够快速创建 Web 应用。它提供了大量的内置功能和工具,帮助开发者避免从零开始编写常见的 Web 应用组件。
- 例如,Django 提供了 自动生成的后台管理系统(Django Admin),开发者只需要定义数据模型(Model)和简单配置,就可以获得强大的数据管理界面。
(2)强大的 ORM(对象关系映射)
- Django 提供了一个 ORM(Object-Relational Mapping)系统,让开发者无需直接写 SQL 查询,便可以通过 Python 对象进行数据库操作。
- 你只需要定义模型(Model)类,Django 会自动为你创建对应的数据库表,并且支持通过 Python 代码对数据进行增删改查(CRUD)操作。
(3)自动化的管理后台
- Django 自带的管理后台非常强大,开发者只需要简单地注册模型(Model)到管理后台,就可以自动获得一个功能完整的界面用于管理数据。
- 后台支持数据的增删改查(CRUD),并提供了过滤、搜索等高级功能。
(4)安全性
- Django 提供了多种内建的安全功能,帮助开发者防止常见的 Web 安全问题,如:
- CSRF(跨站请求伪造)防护:Django 默认启用 CSRF 保护,防止恶意网站伪造用户请求。
- XSS(跨站脚本攻击)防护:Django 自动转义模板中的变量,避免 HTML 注入攻击。
- SQL 注入防护:通过 ORM 进行数据库操作,Django 自动防止 SQL 注入攻击。
- 密码管理:Django 使用加密的哈希算法来存储密码,确保用户数据的安全。
(5)可扩展性和灵活性
- Django 是 模块化的,开发者可以根据需要选择合适的功能进行扩展。
- 例如,Django 提供了多个扩展包来处理认证、RESTful API、文件上传、缓存等功能。
- 你也可以自己创建 应用(App),并将它们集成到主项目中。
(6)良好的文档和社区支持
- Django 有着 极其完善的官方文档,它包含了从基础入门到高级功能的全面指南,帮助开发者快速学习和掌握 Django。
- Django 社区非常活跃,你可以通过官方论坛、Stack Overflow 等途径获取支持,解决开发中的问题。
1.2 Django 的核心组件
(1)Model(模型)
- Django 提供了 ORM 系统来处理与数据库的交互。模型定义了数据的结构,并通过 Django 的 ORM 系统自动与数据库进行交互。
- 示例:
from django.db import modelsclass Product(models.Model):name = models.CharField(max_length=100)price = models.DecimalField(max_digits=10, decimal_places=2)description = models.TextField()def __str__(self):return self.name
(2)View(视图)
- 视图是请求和响应之间的核心处理单元。它负责接收 HTTP 请求,处理请求并返回响应。
- 在 Django 中,视图可以是函数视图(FBV)或类视图(CBV)。
- 示例(函数视图):
from django.http import HttpResponsedef home(request):return HttpResponse("Welcome to the homepage!")
(3)Template(模板)
- Django 提供了模板系统来动态渲染 HTML 页面。模板系统允许开发者插入动态内容(例如数据库查询结果)并控制页面结构。
- 示例(模板):
<h1>{{ title }}</h1> <p>Welcome to the site, {{ user.username }}</p>
(4)URL Dispatcher(URL 路由)
- Django 使用 URL 路由系统将 URL 映射到视图函数或视图类。路由系统可以匹配动态 URL,例如 URL 中带有参数。
- 示例:
from django.urls import path from . import viewsurlpatterns = [path('', views.home, name='home'),path('product/<int:id>/', views.product_detail, name='product_detail'), ]
(5)Admin(管理后台)
- Django 提供了一个强大的自动生成的管理后台,开发者只需注册模型,便可以获得一个全面的数据管理界面。
- 示例(注册模型):
from django.contrib import admin from .models import Productadmin.site.register(Product)
(6)Form(表单)
- Django 提供了一个表单框架,用于生成 HTML 表单、处理用户提交的数据并验证数据。
- 示例:
from django import formsclass ProductForm(forms.Form):name = forms.CharField(max_length=100)price = forms.DecimalField(max_digits=10, decimal_places=2)description = forms.CharField(widget=forms.Textarea)
1.3 Django 的应用场景
- 快速构建 Web 应用:Django 提供了许多内建工具,可以让开发者快速搭建 Web 应用,适合从小型博客到大型复杂应用的开发。
- 企业级应用:Django 强调可扩展性和安全性,适合处理复杂的企业级应用,如电商平台、社交网络等。
- RESTful API:Django 可以与 Django REST Framework 配合使用,快速构建 API 服务,适合前后端分离的应用。
1.4 总结
Django 是一个功能强大且易用的 Web 框架,旨在让开发者能够快速构建高质量的 Web 应用。通过 Django,你可以避免重复造轮子,专注于业务逻辑的实现。Django 内置了 ORM、表单处理、安全性保护、自动化管理后台等功能,极大地简化了 Web 开发过程。
2.基础环境建立
2.1 创建虚拟环境
在此之前,可以创建一个文件夹来存放,如创建一个Django文件夹来存放项目。
首先,确保你的 Python 环境中已经安装了 virtualenv
或者使用 Python 自带的 venv
模块来创建虚拟环境,我采用了第二种。
如果你还没有安装 virtualenv
,可以通过以下命令来安装:
pip install virtualenv
但是,Python 3.3 及以上版本已经自带了 venv
模块,因此你也可以直接使用 venv
来创建虚拟环境。
2.1.1 使用 virtualenv
创建虚拟环境
在你项目的根目录下,执行以下命令来创建一个虚拟环境(假设虚拟环境的名字是 venv
):
virtualenv venv
2.1.2 使用 venv
创建虚拟环境
如果你使用的是 Python 3 自带的 venv
模块,可以这样创建虚拟环境:
python -m venv venv
这将创建一个名为 venv
的文件夹,其中包含虚拟环境的所有必要文件。
2.2 激活虚拟环境
2.2.1 在 Windows 上
在命令行中,运行以下命令来激活虚拟环境:
venv\Scripts\activate
2.2.2 在 macOS 或 Linux 上
在终端中,运行以下命令来激活虚拟环境:
source venv/bin/activate
激活虚拟环境后,你会看到命令行提示符前面会显示 (venv)
,表示当前虚拟环境已激活。
2.3 安装 Django
虚拟环境激活后,安装 Django:
pip install django
这样,Django 会安装在虚拟环境中,而不会影响系统级别的 Python 环境。
2.4 创建 Django 项目
虚拟环境激活后,继续按照之前的步骤来创建 Django 项目和应用。假设你要创建一个名为 myproject
的 Django 项目:
django-admin startproject myproject
cd myproject
2.5 启动开发服务器
在项目目录下,运行以下命令启动开发服务器:
python manage.py runserver
这时,你的 Django 项目应该在虚拟环境中成功运行。
访问127.0.0.1:8000,可以看到如下信息,到这步已经成功安装,下面内容便可以略过:
2.6 停用虚拟环境
当你完成工作并希望退出虚拟环境时,可以运行:
deactivate
这样,虚拟环境就会被禁用,返回到系统默认的 Python 环境。
2.7 保存依赖
为了方便其他人或者你自己在不同机器上安装相同的依赖,你可以创建一个 requirements.txt
文件,该文件包含所有项目依赖的库。使用以下命令生成 requirements.txt
:
pip freeze > requirements.txt
然后,其他人在设置项目时,只需运行以下命令来安装所有依赖:
pip install -r requirements.txt
2.8 小结
- 使用
virtualenv
或venv
创建虚拟环境。 - 激活虚拟环境并安装 Django。
- 在虚拟环境中进行开发,避免与系统 Python 环境发生冲突。
- 使用
deactivate
停用虚拟环境,并使用requirements.txt
管理项目的依赖。
相关文章:

Django简介与虚拟环境安装Django
目录 1.Django简介 1.1 Django 的核心特点 1.2 Django 的核心组件 1.3 Django 的应用场景 1.4 总结 2.基础环境建立 2.1 创建虚拟环境 2.1.1 使用 virtualenv 创建虚拟环境 2.1.2 使用 venv 创建虚拟环境 2.2 激活虚拟环境 2.2.1 在 Windows 上 2.2.2 在 macOS 或 …...
Redis延迟队列详解
以下是对 Redis 延迟队列的详细解释: 一、什么是 Redis 延迟队列 Redis 延迟队列是一种使用 Redis 实现的消息队列,其中的消息在被消费之前会等待一段时间,这段时间就是延迟时间。延迟队列常用于一些需要延迟处理的任务场景,例如订…...

一文大白话讲清楚webpack基本使用——2——css相关loader的配置和使用
一文大白话讲清楚webpack基本使用——2——css相关loader的配置和使用 1. 建议按文章顺序从头看是看 第一篇:一文大白话讲清楚啥是个webpack第二篇:一文大白话讲清楚webpack基本使用——1——完成webpack的初步构建然后看本篇,Loader的配置…...

第二代增强-采购申请屏幕增强
这篇文章可能有点乱,但是都是学习的一个过程,问题就是在ME52N修改采购申请增强字段之后,点击保存之后无法更新到数据库,困扰了很久,终于解决了,特此记录 文章目录 需求创建增强结构测试屏幕ZXM02TOP创建屏幕…...

图论DFS:黑红树
我的个人主页 {\large \mathsf{{\color{Red} 我的个人主页} } } 我的个人主页 往 {\color{Red} {\Huge 往} } 往 期 {\color{Green} {\Huge 期} } 期 文 {\color{Blue} {\Huge 文} } 文 章 {\color{Orange} {\Huge 章}} 章 DFS 算法:记忆化搜索DFS 算法…...

零基础一篇打通Vue极速通关教程
文章目录 写给零基础看的Vue极速掌握教程第1章 Vue简介1.1 Vue 概述1.2 MVVM 模式1.3 WebStorm开发工具1.3.1 WebStorm简介1.3.2 集成Vue开发调试工具 第2章 Vue的事件绑定2.1 Vue基本使用2.1.1 插值表达式2.1.2 注意事项 2.2 Vue事件绑定2.1.1 点击事件2.2.2 键盘事件2.2.3 移…...
商城系统中的常见 BUG
以下是商城系统中一些常见的 BUG: 功能与操作类 支付问题:如无法成功完成支付,支付过程中出现延迟、错误或订单重复支付等,还可能因网络问题导致支付失败或数据不一致。 登录 / 注册问题:用户在注册或登录时可能遇到…...

下定决心不去读研了。。。
大家好,我是苍何。 之前发表过一篇文章,表达了自己读研的困惑和纠结,得到了大家很多的建议,也引起了很多人的共鸣,在留言区分享了自己的故事,看着这些故事,我觉得都够苍何写一部小说了。 可惜苍…...

100个网络基础知识
1)什么是链接? 链接是指两个设备之间的连接。它包括用于一个设备能够与另一个设备通信的电缆类型和协议。 2)OSI 参考模型的层次是什么? 有 7 个 OSI 层:物理层,数据链路层,网络层,传输层,会话层,表示…...

庄小焱——2024年博文总结与展望
摘要 大家好,我是庄小焱。岁末回首,2024 年是我在个人成长、博客创作以及生活平衡方面收获颇丰的一年。这一年的经历如同璀璨星辰,照亮了我前行的道路,也为未来的发展奠定了坚实基础。 1. 个人成长与突破 在 2024 年,…...

高通8255 Android STR 启动失败要因分析调查
目录 背景: 调查过程: 步骤1: slog2info | grep vmm_service 步骤2: slog2info | grep qvm 总结: 解决方案 背景: 调试高通8255 STR的STR过程中发现Android和QNX进入STR状态后,脱出STR时…...
Qt QML专栏目录结构
第1章 走进Qt Quick的世界... 4 ★1.4 Qt Quick应用... 4 ★1.5 Qt Quick UI项目(qmlproject工程) 4 第2章 QML语法... 4 ★2.2 import导入语句... 4 ★2.3 QML类型系统... 5 ★2.4 对象特性(Attributes)... 6 三个等于号JavaScript语…...
“深入浅出”系列之FFmpeg:(3)音视频开发的学习路线和必备知识
一、岗位要求 音视频开发属于我自己想要学习的板块,我想知道公司招聘音视频开发工程师所需要的条件,于是我就从招聘网站上找来了几个有关音视频开发的岗位需求,内容仅供参考: (1)算法工程师-视频编解码 …...

Webpack简述
一、为什么要构建工具 人类喜欢书写的代码以及开发方式计算机不喜欢,构建工具的作用就是让人类舒舒服服写自己喜欢的代码,然后一打包生成计算机喜欢的代码 第一个webpack自身仅仅是将我们引入的模块打包成一个文件(编译import)&am…...
解决 Error: Invalid or corrupt jarfile day04_studentManager.jar 报错问题
在 Java 开发过程中,我们可能会遇到这样的报错信息:Error: Invalid or corrupt jarfile day04_studentManager.jar。这个错误通常表示 day04_studentManager.jar 文件可能已损坏或无效,下面将为大家详细介绍如何解决这个问题。 一、错误点分…...

ACL基础理论
ACL ——访问控制列表 ACL属于策略的一种 ACL访问控制列表的作用: 访问控制:在路由器流量流入或流出的接口上,匹配流量,然后执行设定好的动作:permit(允许)、deny(拒绝ÿ…...
庄周梦蝶1
和尚大概的意思如下:人的每一个梦境都是一个世界,这些世界统称三千世界。每一个世界当中所谓时间的跨度不同,发展程度不同,但是里面都有一个你。这些世界是同时存在的,所以不存在未来过去和现在,因为你就存…...

使用SIPP发起媒体流性能测试详解
使用SIPP发起媒体流性能测试详解 一、SIPP工具简介二、测试前的准备三、编写测试脚本四、运行测试五、分析测试结果六、总结SIPP(SIP Performance Protocol)是一个开源工具,专门用于SIP(Session Initiation Protocol)协议的性能测试和基准测试。SIP是一种用于控制多媒体通…...
瑞利衰落信道机理的详解
瑞利衰落信道(Rayleigh fading channel)是一种无线电信号传播环境的统计模型,用于描述信号在无线信道中的传播特性。这种模型假设信号通过无线信道后,其信号幅度是随机的,即“衰落”,并且其包络服从瑞利分布…...

PyTorch使用教程(2)-torch包
1、简介 torch包是PyTorch框架最外层的包,主要是包含了张量的创建和基本操作、随机数生成器、序列化、局部梯度操作的上下文管理器等等,内容很多。我们基础学习的时候,只有关注张量的创建、序列化,随机数、张量的数学数学计算等常…...
OpenLayers 可视化之热力图
注:当前使用的是 ol 5.3.0 版本,天地图使用的key请到天地图官网申请,并替换为自己的key 热力图(Heatmap)又叫热点图,是一种通过特殊高亮显示事物密度分布、变化趋势的数据可视化技术。采用颜色的深浅来显示…...

从WWDC看苹果产品发展的规律
WWDC 是苹果公司一年一度面向全球开发者的盛会,其主题演讲展现了苹果在产品设计、技术路线、用户体验和生态系统构建上的核心理念与演进脉络。我们借助 ChatGPT Deep Research 工具,对过去十年 WWDC 主题演讲内容进行了系统化分析,形成了这份…...
FFmpeg 低延迟同屏方案
引言 在实时互动需求激增的当下,无论是在线教育中的师生同屏演示、远程办公的屏幕共享协作,还是游戏直播的画面实时传输,低延迟同屏已成为保障用户体验的核心指标。FFmpeg 作为一款功能强大的多媒体框架,凭借其灵活的编解码、数据…...

遍历 Map 类型集合的方法汇总
1 方法一 先用方法 keySet() 获取集合中的所有键。再通过 gey(key) 方法用对应键获取值 import java.util.HashMap; import java.util.Set;public class Test {public static void main(String[] args) {HashMap hashMap new HashMap();hashMap.put("语文",99);has…...
ssc377d修改flash分区大小
1、flash的分区默认分配16M、 / # df -h Filesystem Size Used Available Use% Mounted on /dev/root 1.9M 1.9M 0 100% / /dev/mtdblock4 3.0M...

LeetCode - 394. 字符串解码
题目 394. 字符串解码 - 力扣(LeetCode) 思路 使用两个栈:一个存储重复次数,一个存储字符串 遍历输入字符串: 数字处理:遇到数字时,累积计算重复次数左括号处理:保存当前状态&a…...

HTML 列表、表格、表单
1 列表标签 作用:布局内容排列整齐的区域 列表分类:无序列表、有序列表、定义列表。 例如: 1.1 无序列表 标签:ul 嵌套 li,ul是无序列表,li是列表条目。 注意事项: ul 标签里面只能包裹 li…...
vue3 字体颜色设置的多种方式
在Vue 3中设置字体颜色可以通过多种方式实现,这取决于你是想在组件内部直接设置,还是在CSS/SCSS/LESS等样式文件中定义。以下是几种常见的方法: 1. 内联样式 你可以直接在模板中使用style绑定来设置字体颜色。 <template><div :s…...
将对透视变换后的图像使用Otsu进行阈值化,来分离黑色和白色像素。这句话中的Otsu是什么意思?
Otsu 是一种自动阈值化方法,用于将图像分割为前景和背景。它通过最小化图像的类内方差或等价地最大化类间方差来选择最佳阈值。这种方法特别适用于图像的二值化处理,能够自动确定一个阈值,将图像中的像素分为黑色和白色两类。 Otsu 方法的原…...

【配置 YOLOX 用于按目录分类的图片数据集】
现在的图标点选越来越多,如何一步解决,采用 YOLOX 目标检测模式则可以轻松解决 要在 YOLOX 中使用按目录分类的图片数据集(每个目录代表一个类别,目录下是该类别的所有图片),你需要进行以下配置步骤&#x…...