0. Django3Web开发 第一章上第一部分

0. 第一章节内容

第一章节内容:
0. 网站的基础知识, 网站的定义, 分类, 运行原理
1. Django 搭建环境
2. 项目创建与调试
3. 前端基础知识
必须了解网站的组成部分, 网站类型, 运行原理和开发流程.
掌握Django的基本操作, 创建项目, Django的操作指令, 开发过程中的调试方法.

1. 网站的组成

1.1 网站
网站(Website): 因特网中使用HTTP超文本标记语言等工具制作的网页集合.
人们通过网站发布自己想要展示的资讯信息.
1.2 网站的组成
网站的组成: 域名, 空间服务器, DNS域名解析, 网站程序, 数据库等组成.
1.3 域名
域名(Domian Name): 由一串用点分隔的字符组成.
: www.baidu.com
www 是网络名, 标号 baidu 是域名的主体, com是域名的后缀.
1.4 空间服务器
空间服务器有 虚拟主机, 独立服务器, VPS(Virtual Private Server, 虚拟专用服务器).
1.5 虚拟主机
虚拟主机(网站空间): 在网络服务器上划分出一定的磁盘空间提供用户放置供站点和应用组件, 
提供必备的站点功能, 数据存放和传输功能.
* 一台真实的服务器可以划分出多个虚拟的服务器,每一个虚拟服务器都具有独立的域名和完整的 Internet 服务.
1.6 独立服务器
独立服务器: 整体硬件完全独立, 性能更加强大, CPU几乎在8核心以上.
1.7 VPS
VPS: 专用的虚拟服务器. 
VPS技术将一个服务器分区成多个虚拟独立专享服务器.
每一个服务器拥有独立的公网IP地址, 操作系统, 硬盘空间, 内存空间, CPU资源等, 
支持程序安装, 重启服务等操作, 几乎与一台独立服务器完全相同.
1.8 网站程序
网站程序: 是建设网站使用的编程语言,常见的网站开发语言 Java, PHP, Python.
Web开发浏览器相当于程序的编译器,将源代码翻译成图文内容并呈现在网页上.

2. 网站的分类

2.1 资讯门户类
资讯门户类只要提供咨询信息,是最常见的网站形式之一.
特点: 蕴含的信息类型多, 信息量大, 访问群体多.
功能: 检索, 论坛, 留言, 用户中心等.
技术含量只要涉及4个因素:
* 1.承载的信息类型
	多媒体信息
	结构化信息:数据库所管理的信息,包括生产、业务、交易、客户信息等方面的记录
	...
* 2. 信息发布的方式和流程
* 3. 信息量的数量级
* 4. 网站用户管理
2.2 企业品牌类
企业品牌 非常强调创意, 对美工要求较高.
特点: 针对目标用户进行内容建设, 到达品牌营销的目的.
细分为三类:
* 1. 企业形象网站: 塑造企业形象,传播企业文化, 推介企业业务, 报道企业活动和展示企业实力.
* 2. 品牌形象网站: 当企业拥有众多品牌且品牌之间的市场定位或营销策略不相同时,
	企业可根据不同的品牌建立其品牌网站, 以针对不同的消费群体.
* 3. 产品形象网站: 针对某一产品的网站, 重点在于产品的体验.
2.3 交易类
交易类网站以实现交易为目的, 以订单为中心. 交易的对象可以是企业和消费者.
基本内容: 商品如何展示, 订单如何生成, 订单如何执行.
基本功能: 产品管理, 订购管理,产品推荐, 支付管理, 收费管理, 发送货管理, 会员管理等.
细分为三类:
* 1. B2C (Business To Consumer) 网站: 商家-消费者, 主要是购物网站.(eg:百货商品)
* 2. B2B (Business To Business) 网站: 商家-商家, 只要是商务网站.(eg:原材料市场)
* 3. C2C (Consumer To Consumer) 网站: 消费者-消费者, 只要以拍卖网站为主.(ed:跳蚤市场)
2.4 企业办公类
企业办公类网站主要包括企业办公事务关系系统, 人力资源管理  办公成本管理系统.
2.5 政府办公类
政府办公类是利用政府专用的网络建立的内部门户信息网.
为了方便办公区域以外的相关部门互通信息, 统一处理数据和共享文件资源而建立.
基本功能: 
	1. 提供多数据源接口, 实现业务系统的数据整合.
	2. 统一用户管路, 提供方便有效的访问权限和管理权限体系.
	3. 灵活设立子网站, 实现复制的信息发布管理流程.
网站面向社会公众, 即可以提供办事指南, 政策法规和动态信息, 网上行政业务申报, 保留及相关数据查询等.
2.6互动游戏类
根基所承载游戏的复杂程度来定, 向超巨行型网络方向发展, 有的已经形成了独立的网络世界.
2.7 功能性网站
主要特征: 具有广泛需求的功能拓展,开发一套强大的功能体系. 功能在网页上看起来简单,实际投入巨大.(eg: 百度)

3. 网站的运行原理

3.1 常用术语
* 1. 客户端: 在计算机上运行并连接到互联网的应用程序,用户通过操作客户端实现用户与应用之间的数据交互.
* 2. 服务端: 具有IP地址,能够接受客户端访问并处理请求信息的计算机.
    web中浏览器就是客户端, 当用户操作浏览器页面的时候, 实际上是向服务器的网站发送HTTP请求, 
    服务器接收到请求数据之后会执行相应的处理, 最后将处理的结果返回给客户端并生成相应的网页信息.
* 3. IP地址 互联网协议地址, TCP/IP网络设备(计算机, 服务器, 路由器等) 的数字标识符.
	每一台联网的设备都有一个IP地址, 用于识别和通信. 
	IP地址用 点分十进制表示, 例如 127.0.0.1 这也被称为逻辑地址.
	通过TCP/IP协议将逻辑IP地址转换为物理地址, 即计算机MAC地址, 全球唯一的标识.
* 4. 域名: 用于表示一个或多个IP地址. 域名的存在是为了方便记忆. 例如 www.baudu.com
* 5. DNS: 域名系统, 解析计算机的域名在互联网上对应的IP地址. 
	百度的域名 www.baudu.com  百度的IP地址 14.215.177.38  端口 20
* 6. IPS: 互联网服务提供商. 主要NDS中查找当前域名对应的IP地址.
* 7. TCP/IP: 传输控制协议/互联网协议.
* 8. HTTP: 超文本传输协议, 是浏览器和服务器在互联网中通信的协议.
3.2 网站运行原理
* 1. 在浏览器中输入网站的地址,  www.baidu.com
* 2. 浏览器解析网站地址中包含的信息, 如HTTP协议和域名.
* 3. 浏览器与ISP通信, 在NDS中查询www.baidu.com 所对应的IP地址, 然后将IP地址发送到浏览器的DNS服务, 
   最后向查询到的IP地址发送请求.
* 4. 浏览器获取到IP地址和端口后打开TCP套接字, 实现浏览器与 Web服务器的连接. 
   ( HTTP协议的端口号默认为 80, HTTPS协议的端口号默认为 443. )
   4.1 浏览器根据用户操作向服务器发送相应的HTTP请求, 如打开www.baidu.com的主页.
   4.2 当Web服务器接收请求后, 根据请求信息查找该HTML页面, 
   	   若页面存在, Web服务器将处理结果和页面返回给浏览器.
   	   若服务器找不到页面, 发送404错误信息, 代表找不到相关的页面.
3.3 网站开发流程
完整的开发流程:
* 1. 需求分析: 拿到项目时, 必须进行需求分析, 清楚的知道网站的类型, 具体功能, 业务逻辑以及网站的风格,
     确定域名, 网站空间或者服务器以及网站备案等.
* 2. 规划静态内容: 重新确定需求分析, 并根据用户需求规划出网站的内容板块草图.
* 3. 设计阶段: 根据网站草图由美工制作成效果图.
* 4. 程序开发阶段: 根据草图划分页面结构和设计, 前后端可以同时进行.
	 前端根据美工效果负责制作静态页面.
     后端根据页面结构设计, 设计数据库的结构和网站后台.
* 5. 测试和上线: 在本地搭建服务器, 测试网站是否存在Bug.
	若无问题, 则将网站打包, 驶入FTP上传只网站空间或者服务器.
* 6. 维护推广: 在网站上线之后, 根据实际情况完善网站的不足, 定期修复和升级, 保障网站运营畅通.
	然后对网站进行推广宣传等.
3.4 任务划分
网站的开发必须根据用户指定开发任务, 不同职位的开发人员负责不同的功能设置与实现.
各职位的工作划分:
* 1. 网站设置由UI负责设计. UI需要考虑用户体验, 网站色调搭配和操作流程等.
* 2. 前端开发人员将网页设计图转化成HTML页面, 主要编写HTML页面, CSS样式, JavaScript脚本.
	 如果采用前后端分离开发, 整个网站的功能就皆由前端人员实现.
* 3. 后端开发人员负责实现网站功能和数据库设计. 
	 网站功能需要数据库提供数据支持. 本质上是实现数据库的增删改查操作.
     数据库设置需要根据网站功能设计相应的数据表, 并且还要考虑表与表之间的数据关联.
     如果采用前后端分离开发, 后端人员只需要编写API接口, 由前端人员调用API接口实现网站的功能.
* 4. 测试人员负责测试网站功能是否符合需求. 测试过程需要编写测试用例进行测试, 如果发现功能存在Bug,
	 就需要向开发人员提交Bug的重现方法. 主要功能发送修改或更变, 测试人员就需要重新测试.
* 5. 运维人员负责网站的部署和上线. 网站部署主要搭建在Linux系统上, 除了安装Django环境之外, 
	 还需要将Django搭建在Nginx或Apache服务器上, 并在服务器上绑定域名.

4. Django简介

Django是一个开放源代码的Web应用框架, 由Python写成.20057月在BSD许可证下发布.
Django强调快速开发和DRY(DO Not Repeat Youerseif, 不要重复你自己)的原则.
    简便快速地开发数据库驱动的网站. 
    代码复用, 多个组件类可以很方便地以插件形式服务于整个框架.

Django有许多功能强大的第三方插件, 可以很方便地来发出自己的工具包, 具有很强的可拓展性.
Django采用了MTV的框架模式.
* 1. Model    模型: 数据层存储层, 处理与数据相关的所有事务.
	: 如何存取, 数据之间的关系, 如何验证有效性等.
* 2. Template 模板: 表现层, 处理与表现相关的决定.
	: 如何在页面或其他类型的文档中进行显示.
* 3. Views    视图: 业务逻辑层, 存取模型及调用恰当模板的相关逻辑, 模型与模板的桥梁.
MTV开发特点:
* 1. 对象关系映射(Object Relational Mapping, ORM): 通过定义映射类来构建数据模型, 
	将模型与关系数据连接起来. 使用ORM框架内置的数据库接口可实现复杂的数据操作.
* 2. URL设计: 开发者可以设计任意的URL(网站地址), 而且还支持使用正则表达式设计.
* 3. 模板系统: 提供可扩展的模板语言, 模板之间具有可继承性.
* 4. 表单处理: 可以生成各种表单模型, 而且表单具有校验性功能.
* 5. Cache系统: 完善的缓存系统, 可以支持多种缓存方式.
* 6. Auth认证系统: 提供用户认证, 权限设置和用户组功能, 功能拓展性强.
* 7. 国际化: 内置国际化系统, 方便开发出各种语言的网站.
* 8. Admin后台系统: 内置Admin后台管理系统, 系统拓展性强.

5. 开发环境

* 1. 操作系统 Windows 11
* 2. 编程语言 Python 3.8.5 
* 3. Django版本 3.1.4
* 4. Pycharm 2021.3.1
5.1 Python下载&安装
Python下载地址:
https://www.python.org/downloads/
复制此链接直接下载对应版本: 
https://www.python.org/ftp/python/3.8.5/python-3.8.5-amd64.exe
Python安装步奏:
* 1. 双击.exe程序
* 2. 添加Python 3.8 到环境变量 --> 选择自定义安装

0. Django3Web开发 第一章上第一部分_第1张图片

* 3. next 下一步

0. Django3Web开发 第一章上第一部分_第2张图片

* 4. 选择安装路径 --> install 安装

0. Django3Web开发 第一章上第一部分_第3张图片

* 5. 等待安装

0. Django3Web开发 第一章上第一部分_第4张图片

* 6. 安装成功后 --> Close 关闭

0. Django3Web开发 第一章上第一部分_第5张图片

* 7. 查看环境变量中是否添加Python 3.8

0. Django3Web开发 第一章上第一部分_第6张图片

5.2 Pycharm安装&激活
* 1. Pycharm下载地址:
     https://www.jetbrains.com/pycharm/download/other.html

0. Django3Web开发 第一章上第一部分_第7张图片

* 2. 下载之后双击 .exe 安装软件 --> next 下一步

0. Django3Web开发 第一章上第一部分_第8张图片

* 3. 选择安装位置 --> next 下一步

0. Django3Web开发 第一章上第一部分_第9张图片

* 4. 选择安装配置 --> next 下一步

0. Django3Web开发 第一章上第一部分_第10张图片

* 5. 快捷菜单栏 默认即可 --> install 安装

0. Django3Web开发 第一章上第一部分_第11张图片

* 6. 等待安装 --> next 下一步

0. Django3Web开发 第一章上第一部分_第12张图片

* 7. 重启

0. Django3Web开发 第一章上第一部分_第13张图片

5.3 Django介绍&安装
* 1. Django各版本对Python版本的依赖关系:
Django 版本 Python 版本
1.11 2.7, 3.4, 3.5, 3.6, 3.7 (1.11.17 添加)
2.0 3.4,3.5,3.6,3.7
2.1 3.5,3.6,3.7
2.2 3.5, 3.6, 3.7, 3.8 (2.2.8 添加)
3.0 3.6, 3.7, 3.8
3.1 3.6, 3.7, 3.8
* 2. Django本身的版本规划时间:

0. Django3Web开发 第一章上第一部分_第14张图片

* 3. windows系统中使用pip命令安装Django.

以管理员方式启动cmd
    右击 --> 新建文件 --> 
    复制下面代码 --> 粘贴到文本文件 --> 保存 --> 
    将此文件后缀设置为.reg  --> 选中文件右击 --> 选中合并
Windows Registry Editor Version 5.00

[HKEY_CLASSES_ROOT\Directory\Background\shell\runas]
"ShowBasedOnVelocityId"=dword:00639bc8

[HKEY_CLASSES_ROOT\Directory\Background\shell\runas\command]
@="cmd.exe /s /k pushd \"%V\""

0. Django3Web开发 第一章上第一部分_第15张图片

* 4. 以管理员身份运行命令:pip install django==3.1.4
     pip install django 不设置版本,默认提供的最新版本.

0. Django3Web开发 第一章上第一部分_第16张图片

* 5. 进入Python交互环境, 在Python解释器中输入校验Django安装的代码.
python 启动Python交互式解释器
import django 导入Django模块
django.__version__  查看django版本
'3.1.4'  返回Django的版本信息. (这代表安装成功了.)

0. Django3Web开发 第一章上第一部分_第17张图片

6. 创建项目&应用

6.1 命令行创建
一个项目可以理解成为一个网站,可在命令提示符窗口创建Django项目:
django-admin startproject 项目名
* 1. 切换到D盘
C:\Users\13600\Desktop>d:
* 2. 在D盘创建一个文件夹 Django_test
D:\>mkdir Django_test
* 3. 切换到 Django_test 目录下
D:\>cd  Django_test
* 4. 创建django项目
D:\Django_test>django-admin startproject Django_0

0. Django3Web开发 第一章上第一部分_第18张图片

* 5. 可以在D盘的Django_test中看到 名为 Django_0 的项目.

0. Django3Web开发 第一章上第一部分_第19张图片

* 6. Django_0 项目下包含 Django_0 文件夹和 manage.py 文件

20220324194840

manage.py: 命令行工具, 内置多种方式与项目进行交互.
在命令行中将路径切换到 Django_0 项目下:
* 7. Django_0文件夹包含5个py文件.

0. Django3Web开发 第一章上第一部分_第20张图片

__init__.py: 初始化文件.
asgi.py: 开启一个ASGI服务, ADGI是异步网关协议接口.
settings.py: 项目的配置文件, 项目的所有功能都需要在配置文件中进行配置.
urls.py: 项目的路由设置, 设置网址的具体网址内容.
wsgi.py: (全称 Python Web Server Gateway Interface, Python服务器网关接口, 是Python应用与Web
服务器之间的接口, 用于Django 项目在服务器上的部署和上线.
项目应用简称为App, 相当于网站的功能, 每个App代表网站的一个功能.
App的创建由manage.py 实现:
python manage.py startapp 应用名称
* 8. 切换到Django_0项目下
D:\Django_test>cd Django_0
* 9. 创建app
D:\Django_test\Django_0>python manage.py startapp app01
* 10. 再次查看Django_0项目, 项目中创建了 app01 文件夹.

0. Django3Web开发 第一章上第一部分_第21张图片

* 11. app01文件夹中包含一个 migrations文件夹和6个py文件.

0. Django3Web开发 第一章上第一部分_第22张图片

migrations: 用于生成数据迁移文件, 通过数据迁移文件可自动在数据库里生成相应的数据表.
__init__.py: 应用文件夹的初始化文件.
admin.py: 用于设置当前App的后台管理功能.
apps.py: 用于设置当前App的配置信息, 在Django 1.9版本后自动生成.
models.py: 定义数据库的映射类, 每个类可以关联一张数据表, 实现数据持久化, 即MTV的的模型(Model).
tests.py: 自动化测试的模块, 用于实现单元测试.
views.py: 视图文件, 处理功能的业务逻辑, 即MTV里的视图(Views).
启动项目命令:
python manage.py runserver 端口号
端口号不设置默认是 8000
* 12. 启动项目
D:\Django_test\Django_0>python manage.py runserver 8000

0. Django3Web开发 第一章上第一部分_第23张图片

* 13. 浏览器访问 127.0.0.1:8000 访问Django项目.

0. Django3Web开发 第一章上第一部分_第24张图片

6.2 PyCharm创建
PyCharm 必须是专业版, 社区版本不支持Django的创建和调试.
* 1. 打开 PyCharm 并在左上方单击 File --> New Project

0. Django3Web开发 第一章上第一部分_第25张图片

* 2. 创建项目时默认创建一个tempales文件夹, 用于存放HTML模板文件.

0. Django3Web开发 第一章上第一部分_第26张图片

PyCharm 自动创建Templates文件夹, 并在项目名目录下的settings.py配置文件中 TEMPLATES  DIRS 
添加templates文件夹的路径信息. 

Django3.1 版本开始, 配置文件的路径拼接使用pathlib模块. 
Django3.1 版本之前, 配置文件的路径拼接使用os模块.

0. Django3Web开发 第一章上第一部分_第27张图片

* 3. 创建App应用
	 在PyCharm  terminal中 输入创建App指令, 目录的文件就在项目目录下.

0. Django3Web开发 第一章上第一部分_第28张图片

* 4. 项目启动按钮

0. Django3Web开发 第一章上第一部分_第29张图片

运行/调试编辑 

0. Django3Web开发 第一章上第一部分_第30张图片

0. Django3Web开发 第一章上第一部分_第31张图片

Django默认配置的数据库是SQLlITE, 在启动过项目之后, 在项目目录中会自动创建一个数据库文件 db.sqllite3

0. Django3Web开发 第一章上第一部分_第32张图片

你可能感兴趣的:(Django,3,Web应用开发实战,django)