Django建站基础

网站的运行原理以及开发流程

如果刚刚接触网站的开发,很有必要了解网站的运行原理.

网站的常用术语

1. 客户端: 在计算机上运行并连接到互联网的应用程序,简称浏览器.
      如Chrome,Firefox,IE,用户通过客户端实现网站和用户之间的数据交互.
2. 服务器: 能连接到互联网且具有IP地址的计算机,服务器主要接收和处理用户的请求信息.
      (1) 当用户在客户端操作网页的时候,实质上是向网站发送一个HTTP请求.
      (2) 网站的服务器接收到请求后会执行相应的处理,最后将处理结果返回到客户端并生成相应的网页信息.
3. IP地址: 互联网协议地址,TCP/IP网络设备(计算机,服务器,打印机,路由器等)的数字标识符. 
      (1) 互联网上的每台计算机都有一个IP地址,用于识别何通信.
      (2) IP地址有4组数字,以小数点分隔,例如  192.168.125.21 ,这个被称为逻辑地址.
      (3) 为了在网络中定位设备,通过TCP/IP协议将逻辑IP地址转换为物理地址(物理地址即计算机里面的MAC地址)
4. 域名: 用于标识一个或多个IP地址
5. DNS: 域名系统, 用于跟踪计算机的域名及其在互联网上相应的IP地址.
6. ISP: 互联网服务提供商. 主要工作是在DNS(域名系统)查找当前域名对应的IP地址.
7. TCP/IP: 传输控制协议/互联网协议,是广泛使用的通信协议.
8. HTTP: 超文本传输协议,是浏览器和服务器通过互联网进行通信的协议.

网站的运行原理

大概了解网站常用术语之后,用一个简单的例子来讲解网站运行原理

1. 在浏览器中输入网站地址,如www.github.com
2. 浏览器解析网站地址中包含的信息,如果HTTP协议和域名(github.com)
3. 浏览器与ISP通信,与DNS查找www.github.com所对应的IP地址,然后将IP地址发送到浏览器的DNS服务,最后向www.github.com的IP地址发送请求.
4. 浏览器从网站地址中获取IP地址和端口(HTTP协议默认端口为80,HTTPS默认端口为443),并打开 TCP Socket连接,实现浏览器和Web服务器的连接.
5. 浏览器根据用户操作向服务器发送相应的HTTP请求,如打开www.github.com的主页面
6. 当Web服务器接收请求后,根据请求信息查找该HTML页面. 
      (1) 如果页面存在,则Web服务器将处理结果和页面返回到浏览器
      (2) 如果服务器找不到页面,将发送一个404错误,代表找不到相关的页面

网站开发流程

下面是一个完整的网站开发流程

1. 需求分析: 
      (1) 拿到一个项目时,必须进行需求分析,清楚知道网站的类型,具体功能,业务逻辑以及网站的风格.
      (2) 此外还要确定域名,网站空间或者服务器以及网站备案等.
2. 规划静态内容:
      重新确定需求分析,并根据用户需求规划出网站的内容板块草图
3. 设计阶段:
      根据网站草图,由美工制作成效果图. 就好比建房子一样,首先要画出效果图,然后才开始建房子,网站开发也是如此.
4. 程序开发阶段:
      (1) 根据草图划分页面结构和设计,前端和后台可以同时进行.
      (2) 前端根据美工效果负责制作静态页面
      (3) 后台根据页面结构和设计,设计数据库数据结构和开发网站后台
5. 测试和上线: 
      (1) 在本地搭建服务器,测试网站是否存在BUG.
      (2) 如果没有问题,则可以将网站打包,使用FTP上传至网站空间或者服务器.
6. 维护推广:
      在网站上线之后,根据实际情况完善网站的不足,定期修复和升级,保障网站的运营畅通,然后对网站进行推广宣传.

走进Django

1. Django是一个开源的,由Python编写的Web应用框架. (Django是一个吉他手的名字)
2. Django采用MTV的架构模式,即(1) 模型Model (2) 模板Template (3) 视图Views
3. Django有许多功能强大的第三方插件, 例如  djangorestframework
4. Django强调快速开发还有DRY(Do Not Repeat Yourself)
      (1) 对象关系映射(Object Relational Mapping,ORM)
            通过定义映射类来构建数据模型,将模型与关系数据库连接起来,使用ORM框架内置的数据库接口可实现复杂的数据操作
      (2) URL设计: 开发者可以设计任意的URL(网站地址),而且还支持使用正则表达式设计
      (3) 模板系统: 梯控可扩展的模板语言,模板之间具有可继承性
      (4) 表单处理: 可以生成各种表单模型,热切表单具有有效性检验功能
      (5) Cache系统: 完善的缓存系统,可支持多种缓存方式
      (6) 用户管理系统: 提供用户认证,权限设置和用户组功能,功能扩展性强
      (7) 国际化: 内置国际化系统,方便开发出多种语言的网站
      (8) admin管理系统: 内置admin管理系统,系统扩展性强

Django的MVT架构

Django建站基础

Django2.0的新特性

05年发布的Django,18年初的Django2.0是第一次比较大的版本提升

1. 简化URL路由语法,使得Django.urls.path()的语法更简单.
      功能的导入模块由Django.urls实现,如  from Django.urls import include,path,re_path
2. admin管理系统: 支持主流的移动设备并新增属性 ModelAdmin.autocomplete_fields 和 ModelAdmin.get_autocomplete_fields()
3. 用户认证: PBKDF2密码哈希默认的迭代次数从36000增加到100000
4. ....

安装Django

1. 使用pip进行Django的安装: pip install django==2.2
      (1) pip 安装python包与操作系统无关
# 验证django安装成功
import django
django.__version__   ## django.get_version()
Out[3]: ‘2.2‘

创建项目

1. 一个项目可以理解唯一网站,创建Django项目可以在CMD窗口输入创建指定完成: 
      (1) django-admin startproject MyDjango   创建一个Django项目
      (2) cd MyDjango   进入创建好的目录
      (3) python manage.py startapp index  创建一个index app
      (4) python manage.py startapp user  创建user app
      (5) pyhon manager.py runserver 127.0.0.1:8800 启动Django,默认是8000端口

Django建站基础

相关推荐