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架构
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端口