Dajngo01_Django框架基础与环境搭建

news2025/1/6 20:39:27

Dajngo01_Django框架基础与环境搭建


在正式开始学习Django之前,我们先简单了解一下Web应用程序的本质:

  1. 接收并解析HTTP请求,获取具体的请求信息
  2. 处理本次HTTP请求,即完成本次请求的业务逻辑处理
  3. 构造并返回处理结果——HTTP响应

那么什么是web框架呢?

Web应用框架有助于减轻网页开发时共通性活动的工作负荷,例如许多框架提供数据库访问接口、标准样板以及会话管理等,可提升代码的可再用性。

说简单点就是web框架用于搭建Web应用程序,免去不同Web应用相同代码部分的重复。

1.1 认识Django框架

Python下有许多款不同的 Web 框架。Django是重量级选手中最有代表性的一位。许多成功的网站和APP都基于Django。Django 是一个开放源代码的 Web 应用框架,由 Python 写成。Django 遵守 BSD 版权,初次发布于 2005 年 7 月, 并于 2008 年 9 月发布了第一个正式版本 1.0 。

Django(英文发音:[`dʒæŋgəʊ])框架最初是一款属于CMS内容管理系统类的软件。Django框架的设计初衷是用于开发数据库驱动型网站,因此其具有十分强大的数据库方面的功能。Django基于Python类的继承方式,实现了独有的代码复用功能,支持将各种组件以“插件”方式嵌入。

近几年Django框架的发展势头非常迅猛,版本的更新迭代速度非常快,这主要是得益于Python编程语言在业内地位的不断上升。下图是Django官网提供的、最新的产品发布路线图。

image-20230911084250681

目前最新的版本是4.X,在未来的5年规划中,Django框架将会更新到6.0+版本。

Django 采用了 MVT 的软件设计模式,即模型(Model),视图(View)和模板(Template)。

这个MVT模式并非django首创,在其他的语言里面也有类似的设计模式MVC,甚至可以说django里面的MVT事实上是借鉴了MVC模式衍生出来的。

M,Model,模型,是用于完成操作数据库的。

V,View,视图,里面的代码就是用于展示给客户端的页面效果。

C,Controller,控制器,是一个类或者函数,里面的代码就是用于项目功能逻辑的,一般用于调用模型来获取数据,获取到的数据通过调用视图文件返回给客户端。

而MVT指的是:

  1. M全拼为Model,与MVC中的M功能相同,负责和数据库交互,进行数据处理。
  2. V全拼为View,与MVC中的C功能相同,接收请求,进行业务处理,返回应答。
  3. T全拼为Template,与MVC中的V功能相同,负责封装构造要返回的html。

MVT模型的工作流程:

image-20211004122200077

路由控制器将请求转发给对应的视图函数,完成业务逻辑,视图函数将从model中获取的数据嵌入到template的中模板文件(html)渲染成一个页面字符串,返回给客户端的流程。

所以我们学习Django重点是四个部分:url路由器+MVT

本课程基于Django3.2,官方文档地址:https://docs.djangoproject.com/zh-hans/3.2/topics/

目前我们学习和使用的版本是3.2LTS版本

目前开源软件发布一般会有2个不同的分支版本:
1. 普通发行版本:                  经常用于一些新功能,新特性,但是维护周期短,不稳定.
2. 长线支持版本[LongTerm Supper]: 维护周期长,稳定
--------------------------------------------------------------------------------------------
软件版本格式: 大版本.小版本.修订号
大版本一般是项目内容/软件的核心架构发生改动, 以前的代码已经不适用于新的版本
小版本一般是功能的删减, 删一个功能,小版本+1, 减一个功能,小版本+1
修订号一般就是原来的代码出现了bug, 会针对bug代码进行修复, 此时就会增加修订号的数值

image-20210525103556002

1.2 搭建Django开发环境

本教程中Python和Django的版本号:

  • Python 3.9.x

  • Django 3.2

1.2.1 Python3.9 安装教程

  1. 下载地址:https://www.python.org/downloads/ 或者 适用于 Windows 的 Python 版本 |Python.org

image-20230716190432855

官网最新的版本是3.11.4,这里我们需要下载特定的版本(3.9),往下滑动,找到(Looking for a specific release?)

image-20230716191414347

image-20230716191552286

  1. 下载完成,开始安装

双击安装包,在安装界面你有两个选择:默认安装(Install Now) or 自定义安装(Customize installation)。

image-20230716192425349

建议: 选择自定义安装,自己选择路径,自定义安装一个自己熟悉的,查找容易的路径

自定义安装路径选项下的 “Add Python 3.9 to PATH”记得一定勾选上,它能够将 python.exe 文件添加到系统路径下,此时在系统自带的 cmd 窗口中可直接执行 Python 程序,进行编译,十分方便。

image-20230716192618563

自定义选择(Browse)需要安装的路径,确认路径无误后点击安装(Install):

image-20230716192740914

image-20230716192822130

  1. 安装完成,验证是否正确

打开cmd【快捷键win+R或者输入cmd】,检查下载的版本.

image-20230716192900223

命令行输入【python -V】查看nodejs的版本号,输出版本号则安装成功!

ps:这里 v 一定要大写V!!

image-20230716193020366

1.2.2 PyCharm 安装下载激活

下载地址:https://www.jetbrains.com.cn/pycharm/download/?section=windows

  1. 选择专业版下载

image-20230716193557590

  1. 安装

双击安装包

image-20230716193754577

image-20230716193854441

选择安装地址

image-20230716193932221

image-20230716193959178

image-20230716194010031

  1. 激活

1). 下载插件

地址:https://3.jetbra.in/

点击

image-20230716200037469

image-20230716200451641

直到出现:

image-20230716200050034

双击打开 Pycahrm

然后将 KEY 写入

image-20230717000405730

1.2.3 创建虚拟环境(virtualenv)

**虚拟环境(virtualenv,或venv )**是 Python 多版本管理的利器,可以使每个项目环境与其他项目独立开来,保持环境的干净,解决包冲突问题。

你可以将虚拟环境理解为一个隔绝的小系统。

比如:

pip install django==3.2

使用如上命令, 会将Django安装到python39/dist-packages路径下

如果在一台电脑上, 想开发多个不同的项目, 需要用到同一个包的不同版本, 如果使用上面的命令, 在同一个目录下安装或者更新, 新版本会覆盖以前的版本, 其它的项目就无法运行了.

所以,我们需要安装虚拟环境,虚拟环境可以搭建独立的python运行环境, 使得单个项目的运行环境与其它项目互不影响.

1)终端创建虚拟环境

(1)建立虚拟环境
  1. 下载 virtualenv
pip install virtualenv

验证

image-20230717002011780

在平时写项目时,我们可以建立一个虚拟工作环境。

我们先为项目建立一个文件夹My_Django_01,在文件夹中打开命令行(shift+右击),来建立另一个虚拟环境。

  1. 创建虚拟环境
python -m venv my_dj01_env(虚拟环境名字)

image-20230717002505856

此时文件夹中会多出来一个my_dj01_env的文件夹

image-20230717002530439

(2)激活虚拟环境

建立虚拟环境后,进入 my_dj01_env 文件夹中的Scripts文件夹中打开命令行输入:

activate

输入之后会进入虚拟环境

image-20230717002835934

然后就可以在这个虚拟环境进入开发

2)Pycharm 配置虚拟环境

首先我们新建一个空白文件夹用来存放我们的项目和虚拟环境相关文件,比如:

F:\pycharmspace\Django\My_Django_02

打开Pycharm,点击File–Open,打开My_Django_02文件路径

image-20230717003335221

点击File–Setting

image-20230717003432663

在打开的界面中找到 Python Interpreter,点击Add

image-20230717003518652

在弹出的页面中,在location:中 输入虚拟环境的路径地址。(如果输入的路径是一个已经存在的文件夹,则必须为空白文件夹,如果路径不存在则会按照路径地址新建空白文件夹并在此文件夹下创建虚拟环境。)

image-20230717003905444

虚拟环境创建完成后的界面如下:

image-20230717003921212

打开Pycharm的终端Terinal输入框,我们可以看到路径前面带了(my_dj02_venv) 这代表着我们目前已经处于虚拟环境中了。

1.3 开发第一个Django框架应用程序

1)安装Django3.2

虚拟环境创建好了之后,我们可以安装django了,本系列文章基于当前最新版的django3.2,在Pycharm的Terminal输入框输入如下命令pip install django==3.2即可开始安装Django。

pip install django
pip install django==3.2
---------------------------------------------
pip源:
    https://pypi.douban.com/simple/  豆瓣源
    https://pypi.tuna.tsinghua.edu.cn/simple   清华源

使用格式:
    pip install django -i https://pypi.douban.com/simple/

image-20230717010158342

这里我通过django==3.2 指定了django版本为3.2 ,如果不指定版本,直接使用pip install django`将安装最新版。

查看django版本号

django-admin --version

image-20230717010346718

2)创建Django项目

django-admin startproject HelloDjango

image-20230717010705264

项目创建完成后,我们将会在 文件夹中看到自动生成了HelloDjango的项目文件夹

image-20230717010715508

通过Pycharm进入我们刚刚生成的项目文件夹 F:\pycharmspace\Django\My_Django_02\HelloDjango>,检查下Pycharm的终端是否使用的是虚拟环境。

image-20230717010920657

如果进入的不是我们之前配置的虚拟环境的话,我们可以进入File–Setting界面,手工指定对应虚拟环境。

image-20230717011015379

然后在Pycharm中重新打开项目文件夹可以看到我们已经顺利进入了我们所需要的虚拟环境了。

image-20230717011032420

3)运行Django项目

接着我们测试下我们的django项目是否创建成功,在终端输入框中输入django命令

python manage.py runserver ||  python manage.py runserver 9090

image-20230717011119999

在浏览器中打开默认服务器端口地址: http://127.0.0.1:8000/ ,出现如下页面,则代表我们已经成功创建并运行了一个django项目

image-20230717011152343

runserver默认启动的wsgi.py文件作为web服务器接口

3)Django命令

在终端输入框输入django-admin可以查看django所有的命令字段:

image-20230717011342821

其中比较常用的命令字段如下,后续的项目过程中我们会用到:

命令描述
startproject创建django项目
startapp创建项目app
makemigrations映射模型和数据库关系
migrate创建数据表
runserver服务器运行项目

1.4 创建子应用

创建子应用:

python manage.py startapp 子应用名称

image-20230727173528211

image-20230727173551772

创建子应用后我们可以看到Django完整的目录结构如下:

│─ manage.py    # 终端脚本命令,提供了一系列用于生成文件或者目录的命令,也叫脚手架
└─ HelloDjango/     # 主应用开发目录,保存了项目中的所有开发人员编写的代码, 目录是生成项目时指定的
    │- asgi.py      # django3.0以后新增的,用于让django运行在异步编程模式的一个web应用对象
    │- settings.py  # 默认开发配置文件,例如:连接那个数据...
    │- urls.py      # 路由列表目录,用于绑定视图和url的映射关系
    │- wsgi.py      # wsgi就是项目运行在wsgi服务器时的入口文件
    └- __init__.py
└─ app01         # 子应用
    │- models    # 该应用的模型类模块
    │- views     # 该应用的视图模块
    │- tests     # 该应用的单元测试模块
    │- apps      # 该应用的一些配置,自动生成
    │- admin.py  # 该应用的后台管理系统配置

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Redis 数据一致性方案的分析与研究

点击下方关注我,然后右上角点击...“设为星标”,就能第一时间收到更新推送啦~~~ 一般的业务场景都是读多写少的,当客户端的请求太多,对数据库的压力越来越大,引入缓存来降低数据库的压力是必然选择,目前业内…

【移动开发】最新uniapp开发的多端影视APP+后端对接的苹果CMS源码(可打包多端app)

介绍: 分享一款uniapp开发的多端影视APP源码,后端对接的是苹果10CMS。 这个APP有缓存、投屏、回放记录、收藏等功能,非常完善。 会员中心也使用苹果cms的数据。 可以打包到多个端的代码。 本APP前端用的UI框架是特漂亮的colorUI&#xff0…

当我们谈外包,我们在谈什么?

大家好,我是苍何,周末发小来找我玩耍,聊到了他当初在华为外包的经历,感触挺大的,给大家做下分享。 小 Z 大学专科材料专业毕业,毕业后报名了 IT 培训班,学习了一年,之后面试去了华为…

关于安卓grovvy开发(一)bugly混淆自动上报

背景 打包,mapping,上传,这些是不是都困扰了开发很多。苦于复制粘贴?反正我是。于是,有了这个 最终效果 最终的效果,就是点击项目的打包gradle,复制mapping文件且进行bugly混淆的自动上报。 …

基于单片机超声波测距语音播放

一、系统方案 本设计采用52单片机作为主控器,HC-SR04测距,液晶1602显示,按键设置报警阀值,语音报警。 二、硬件设计 原理图如下: 三、单片机软件设计 1、首先是系统初始化 uint dist; // 保存超声波模块测量到的结果…

基于SSM的网上医院预约挂号系统

末尾获取源码 开发语言:Java Java开发工具:JDK1.8 后端框架:SSM 前端:采用JSP技术开发 数据库:MySQL5.7和Navicat管理工具结合 服务器:Tomcat8.5 开发软件:IDEA / Eclipse 是否Maven项目&#x…

Linux 部分IO函数

open、close函数 标准C库IO函数的说明文档在 man 3 open Linux系统IO函数说明文档在man 2 open open()函数打开文件 && errno 例子:目录下没有a.txt那么运行的时候会报错 open创建新文件 本来没有 create.txt 运行完有了 ll可看文…

【LeetCode-中等题】209. 长度最小的子数组

文章目录 题目方法一:滑动窗口:方法二: 题目 方法一:滑动窗口: 参考图解动画:长度最小的子数组 class Solution { //方法一:滑动窗口public int minSubArrayLen(int target, int[] nums) {int n nums.l…

解决jsp/html界面跳转servlet出现404错误的方法

解决jsp/html界面跳转servlet出现404错误的方法 最近在学习黑马项目过程中遇到的问题 问题一: 检查页面的跳转路径和名称拼写是否正确 问题二: tomcat发布项目时所使用的路径名称与项目不同 在idea右上角点击如图圈住的按钮 在deployment中更改出现…

【SpringCloud微服务项目学习-mall4cloud项目(1)】——环境部署,构建与运行

环境部署,构建与运行 mall4cloud项目介绍源码地址 开发环境搭建pom搭建项目运行前端运行 mall4cloud项目介绍 mall4j商城系统 首先介绍一下mall4j,是一个基于spring boot、spring oauth2.0、mybatis、redis的轻量级、前后端分离、防范xss攻击、拥有分布…

Redis的基本概念与基础用法(1)

在节假日前12306的访问量就会急剧增加,在这种海量用户高并发的情况下就容易出现网站崩溃的情况,造成网站奔溃的罪魁祸首就是关系型数据库,因为关系型数据库有: 性能瓶颈:磁盘IO性能低下扩展瓶颈:数据关系复…

【三维重建】Ubuntu18.04安装COLMAP

Ubuntu18.04安装COLMAP 文章目录 Ubuntu18.04安装COLMAP前言安装COLMAP:安装CUDA, cuDNN安装依赖项安装Ceres优化库安装glog(可选)配置并编译COLMAP运行COLMAP 总结 前言 COLMAP是一种通用的运动结构(SfM)和多视图立体(MVS)管道,具有图形和命令行界面。…

RBTree(红黑树)模拟实现(插入)

目录 红黑树的性质 红黑树的模拟插入 叔叔存在且为红色 叔叔不存在 旋转情况​​​​​​​ 叔叔存在且为黑色 总结 插入实现 节点 插入逻辑 左单旋 右单旋 红黑树是一颗平衡搜索二叉树,但是红黑树并不像 AVL 树一样是高度平衡二叉树,任意一…

正在吞食世界的Python!

谁能想到,30年后,一条蟒蛇因为人工智能而席卷了全世界!这一切,都源于1989年的那个圣诞节。 一个名叫Guido van Rossum程序员在荷兰的阿姆斯特丹呆着,无所事事的圣诞假期有点无聊。为了打发时间,他开发了一…

前端中的事件委托

前端小知识 事 件 委 托 作者:李俊才 (jcLee95):https://blog.csdn.net/qq_28550263 邮箱 :291148484163.com 本文地址:https://blog.csdn.net/qq_28550263/article/details/132819265 【介绍】&#xff1…

MATLAB语言 实验一 MATLAB工作环境熟悉及简单命令的执行

一、 实验名称 MATLAB工作环境熟悉及简单命令的执行 二、 实验目的 熟悉MATLAB的工作环境,学会使用MATLAB进行一些简单的运算。 三、实验内容 MATLAB的启动和退出,熟悉MATLAB的桌面(Desktop),包括菜单&#xff08…

抖音视频批量智能剪辑/智能一键成片功能如何技术开发源头?

抖音seo,视频剪辑,批量发布,账号矩阵管理,无人直播自动询盘锁定客户,想实现以上功能都要有正规的接口权限,这个权限接口已经在前面文章发过。 一、剪辑技术开发 智能剪辑:咱们研发公司自主研发…

初识Vue3

目录 创建实例 Vue3生命周期 响应式基础 为什么要使用 ref? 声明响应式状态 ref()和reactive() toRef()和toRefs() 创建实例 通过对Vue2的学习,我们可以这样在Vue2中创建一个实例: var vm new Vue({// 选项 }) 或者通过Vue全局api…

webrtc-m79-测试peerconnectionserver的webclient-p2p-demo

1 背景 webrtc的代码中有peerconnectionclient和peerconnectionserver的例子,但是没有对应的web端的例子,这里简单的写了一个测试例子,具体如下: 2 具体操作 2.1 操作流程 2.2 测试效果 使用webclient与peerconnectionclient的…

Windows安装MySQL8.0完整教程

很多朋友在安装MySQL的时候,总会遇到各种各样的问题。本文来教你怎样正确安装MySQL。 一、 下载MySQL 如果已经下载好了可以忽略,我下面提供两个版本的下载链接 阿里云盘 夸克云盘 链接:https://pan.quark.cn/s/1894623c2e6a 提取码&…