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 小结

  1. 使用 virtualenvvenv 创建虚拟环境。
  2. 激活虚拟环境并安装 Django。
  3. 在虚拟环境中进行开发,避免与系统 Python 环境发生冲突。
  4. 使用 deactivate 停用虚拟环境,并使用 requirements.txt 管理项目的依赖。

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

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

相关文章

计算机毕业设计PySpark+Hadoop+Hive机票预测 飞机票航班数据分析可视化大屏 航班预测系统 机票爬虫 飞机票推荐系统 大数据毕业设计

温馨提示&#xff1a;文末有 CSDN 平台官方提供的学长联系方式的名片&#xff01; 温馨提示&#xff1a;文末有 CSDN 平台官方提供的学长联系方式的名片&#xff01; 温馨提示&#xff1a;文末有 CSDN 平台官方提供的学长联系方式的名片&#xff01; 作者简介&#xff1a;Java领…

vue+高德API搭建前端3D交通页面

1. 模板部分 (<template>) <template><div class"content"><div><div id"container"></div></div></div> </template> 功能&#xff1a;定义了组件的HTML结构。分析&#xff1a; div.content 是最…

第十三章:数据库技术

文章目录&#xff1a; 一&#xff1a;基础 1.概念 2.特点 3.常见数据库品牌 4.数据库应⽤系统 4.1 C/S 4.2 B/S 5.数据模型的分类 6.名词解析 7.关系运算 二&#xff1a;Access 1.基础 2.操作 2.1 建立表 2.2 维护表 2.3 创建查询 2.4 创建窗体 2.5 创建报表…

《汽车维护与修理》是什么级别的期刊?是正规期刊吗?能评职称吗?

​问题解答&#xff1a; 问&#xff1a;《汽车维护与修理》是不是核心期刊&#xff1f; 答&#xff1a;不是&#xff0c;是知网收录的正规学术期刊。 问&#xff1a;《汽车维护与修理》级别&#xff1f; 答&#xff1a;国家级。主管单位&#xff1a;中国汽车维修行业协会 …

31、【OS】【Nuttx】OSTest分析(1):stdio测试(一)

背景 接上篇wiki 30、【OS】【Nuttx】构建脚本优化&#xff0c;引入待构建项目参数 最小系统分析完后&#xff0c;下一个能够更全面了解Nuttx的Demo&#xff0c;当然选择OSTest&#xff0c;里面有大量关于OS的测试用例&#xff0c;方便对Nuttx的整体功能有个把握。 stdio_tes…

Ubuntu 24.04 LTS 安装 Docker Desktop

Docker 简介 Docker 简介和安装Ubuntu上学习使用Docker的详细入门教程Docker 快速入门Ubuntu版&#xff08;1h速通&#xff09; Docker 安装 参考 How to Install Docker on Ubuntu 24.04: Step-by-Step Guide。 更新系统和安装依赖 在终端中运行以下命令以确保系统更新并…

Elasticsearch 和arkime 安装

安装一定要注意版本号&#xff0c;不然使用不了 这里Ubuntu使用ubuntu-20.04.6-desktop-amd64.iso elasticsearch这里使用Elasticsearch 7.17.5 | Elastic arkime这里使用wget https://s3.amazonaws.com/files.molo.ch/builds/ubuntu-20.04/arkime_3.4.2-1_amd64.deb 大家想…

C语言之整数转换英文表示

&#x1f31f; 嗨&#xff0c;我是LucianaiB&#xff01; &#x1f30d; 总有人间一两风&#xff0c;填我十万八千梦。 &#x1f680; 路漫漫其修远兮&#xff0c;吾将上下而求索。 整数转换英文表示 摘要&#xff1a;本文设计了一种基于C语言的数字到英文表示的转换程序&am…

战场物联网:通信挑战与最新解决方案综述

论文标题 The Internet of Battle Things: A Survey on Communication Challenges and Recent Solutions 作者信息 Rachel Kufakunesu, Herman Myburgh, Allan De Freitas 论文出处 Discover Internet of Things (2025) 5:3 | The internet of battle things: a survey on…

【2024年华为OD机试】 (B卷,100分)- 路灯照明问题(Java JS PythonC/C++)

一、问题描述 路灯照明问题 题目描述 在一条笔直的公路上安装了 ( N ) 个路灯&#xff0c;从位置 0 开始安装&#xff0c;路灯之间间距固定为 100 米。每个路灯都有自己的照明半径。请计算第一个路灯和最后一个路灯之间&#xff0c;无法照明的区间的长度和。 输入描述 第一…

将n变为一个可以被表示为2^{a}+2^{b}的正整数m

给出一个正整数n&#xff0c;需要将n变为一个可以被表示为的正整数m&#xff0c;其中a和b都是非负整数且a!b&#xff0c;你可以进行两种操作&#xff1a; 1.令n加1 2.令n减1 请你求出最少需要多少次操作才能将n变成满足条件的m。 输入格式 输入一个整数&#xff0c;代表n。…

ARM学习(42)CortexM3/M4 MPU配置

笔者之前学习过CortexR5的MPU配置,现在学习一下CortexM3/M4 MPU配置 1、背景介绍 笔者在工作中遇到NXP MPU在访问异常地址时,就会出现总线挂死,所以需要MPU抓住异常,就需要配置MPU。具体背景情况可以参考ARM学习(41)NXP MCU总线挂死,CPU could not be halted以及无法连…

大语言模型的语境中“越狱”和思维链

大语言模型的语境中“越狱”和思维链 越狱(Jailbreaking) 含义:在大语言模型的语境中,“越狱”是指用户试图绕过语言模型的安全限制和使用规则,让模型生成违反伦理道德、包含有害内容(如暴力、歧视、恶意软件代码等)的输出。这些安全限制是由模型开发者设置的,目的是确…

AI时代下 | 通义灵码冲刺备战求职季

AI时代下 | 通义灵码冲刺备战求职季 什么是通义灵码使用智能编程助手备战求职靠谱吗体验心得 AI时代下&#xff0c;备战求职季有了不一样的方法&#xff0c;使用通义灵码冲刺备战求职季&#xff0c;会有什么样的体验&#xff1f; 什么是通义灵码 在开始话题之前&#xff0c;首…

PHP企业IM客服系统

&#x1f4ac; 企业IM客服系统——高效沟通&#xff0c;无缝连接的智慧桥梁 &#x1f680; 卓越性能&#xff0c;释放无限可能 在瞬息万变的商业环境中&#xff0c;我们深知沟通的力量。因此&#xff0c;基于先进的ThinkPHP5框架与高性能的Swoole扩展&#xff0c;我们匠心独运…

华为HuaweiCloudStack(一)介绍与架构

本文简单介绍了华为HCS私有云解决方案&#xff0c;并从下至上介绍HCS的整体架构&#xff0c;部署架构、部署方式等内容。 目录 HCS简介 HCS架构 纵向结构 ?管理平台类型 HCS节点类型 FusionSphere OpenStack CPS ServiceOM SC 运营面 OC 运维面 HCS部署架构 regi…

[Qt] Box Model | 控件样式 | 实现log_in界面

目录 1、样式属性 &#xff08;1&#xff09;盒模型&#xff08;Box Model&#xff09; 2、控件样式示例 &#xff08;1&#xff09;按钮 &#xff08;2&#xff09;复选框 &#xff08;3&#xff09;单选框 &#xff08;4&#xff09;输入框 &#xff08;5&#xff09…

【PowerQuery专栏】PowerQuery提取XML数据

XML数据和Json 数据类型都是比较典型的层次数据类型,XML的数据格式非常的对称。所有的数据均是由标签对组成,图为典型的XML文件类型的数据。 在PowerQuery中进行XML数据类型解析采用的是Xml.Document 函数来进行文件内容的解析,Xml.Document 目前有三个可用参数。 参数1为数…

高等数学:映射与函数

目录 映射 函数 定义 函数特性 映射 函数 定义 函数特性

华为AI培训-NLP实验

中文分词、命名实体识别、语义词性标注、语句逻辑推理、文本摘要、机器翻译、文本情感分析、内容创作 1 实验介绍 1.1 实验背景 中文分词、命名实体识别、语义词性标注、语句逻辑推理是自然语言处理领域中的重要任务。中文分词是将连续的汉字序列切分成有意义的词语序列…