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框架最外层的包,主要是包含了张量的创建和基本操作、随机数生成器、序列化、局部梯度操作的上下文管理器等等,内容很多。我们基础学习的时候,只有关注张量的创建、序列化,随机数、张量的数学数学计算等常…...
IDEA运行Tomcat出现乱码问题解决汇总
最近正值期末周,有很多同学在写期末Java web作业时,运行tomcat出现乱码问题,经过多次解决与研究,我做了如下整理: 原因: IDEA本身编码与tomcat的编码与Windows编码不同导致,Windows 系统控制台…...
使用分级同态加密防御梯度泄漏
抽象 联邦学习 (FL) 支持跨分布式客户端进行协作模型训练,而无需共享原始数据,这使其成为在互联和自动驾驶汽车 (CAV) 等领域保护隐私的机器学习的一种很有前途的方法。然而,最近的研究表明&…...
对WWDC 2025 Keynote 内容的预测
借助我们以往对苹果公司发展路径的深入研究经验,以及大语言模型的分析能力,我们系统梳理了多年来苹果 WWDC 主题演讲的规律。在 WWDC 2025 即将揭幕之际,我们让 ChatGPT 对今年的 Keynote 内容进行了一个初步预测,聊作存档。等到明…...
使用van-uploader 的UI组件,结合vue2如何实现图片上传组件的封装
以下是基于 vant-ui(适配 Vue2 版本 )实现截图中照片上传预览、删除功能,并封装成可复用组件的完整代码,包含样式和逻辑实现,可直接在 Vue2 项目中使用: 1. 封装的图片上传组件 ImageUploader.vue <te…...
【Go】3、Go语言进阶与依赖管理
前言 本系列文章参考自稀土掘金上的 【字节内部课】公开课,做自我学习总结整理。 Go语言并发编程 Go语言原生支持并发编程,它的核心机制是 Goroutine 协程、Channel 通道,并基于CSP(Communicating Sequential Processes࿰…...
[10-3]软件I2C读写MPU6050 江协科技学习笔记(16个知识点)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16...
SpringCloudGateway 自定义局部过滤器
场景: 将所有请求转化为同一路径请求(方便穿网配置)在请求头内标识原来路径,然后在将请求分发给不同服务 AllToOneGatewayFilterFactory import lombok.Getter; import lombok.Setter; import lombok.extern.slf4j.Slf4j; impor…...
多种风格导航菜单 HTML 实现(附源码)
下面我将为您展示 6 种不同风格的导航菜单实现,每种都包含完整 HTML、CSS 和 JavaScript 代码。 1. 简约水平导航栏 <!DOCTYPE html> <html lang"zh-CN"> <head><meta charset"UTF-8"><meta name"viewport&qu…...
用机器学习破解新能源领域的“弃风”难题
音乐发烧友深有体会,玩音乐的本质就是玩电网。火电声音偏暖,水电偏冷,风电偏空旷。至于太阳能发的电,则略显朦胧和单薄。 不知你是否有感觉,近两年家里的音响声音越来越冷,听起来越来越单薄? —…...
【分享】推荐一些办公小工具
1、PDF 在线转换 https://smallpdf.com/cn/pdf-tools 推荐理由:大部分的转换软件需要收费,要么功能不齐全,而开会员又用不了几次浪费钱,借用别人的又不安全。 这个网站它不需要登录或下载安装。而且提供的免费功能就能满足日常…...
