小酌Django3——HTTP/URL/ORM简述

小酌Django3——HTTP/URL/ORM简述

HTTP

Hyper Text Transfer Protocol(超文本传输协议):

  • 是客户端与服务端请求和应答的标准(TCP),封装了Web服务的整个过程;
  • 通常,由客户端发起,建立到服务器指定端口(默认80端口)的TCP链接;服务器在指定端口监听客户端的请求并响应,返回状态信息(如“HTTP/1.1 200”)和内容信息;
    • request:客户端->服务器端;
    • response:服务器端->客户端;

HTTP/1.1协议定义的8中请求方式:(名称均大写)

  • OPTIONS
  • HEAD
  • GET:请求服务器,读取信息并显示;
  • POST:向服务器提交数据,请求服务器处理(表单提交、文件上传);
  • PUT
  • DELETE
  • TRACE
  • CONNECT

HTTPS

Hyper Text Transfer Protocol Secure:

  • 默认端口443;
  • 相比HTTP明文封装信息的方式,HTTPS采用密文传输,安全性更好些;

URL

Uniform/Universal Resourse Locator,统一资源定位符,即网址;

标准格式:协议类型://服务器地址(必要时需要加上端口号)/路径/文件名

  • 协议类型:如HTTP、HTTPS
  • 服务器地址:通常为域名,也可以是IP地址(必要时需要端口号);
  • 路径:以“/”区分目录;用“?”发起参数,多个参数用“&”隔开,“=”分开参数名称和值;
  • 文件名:一般由服务器根据路径匹配相应的程序文件;

模型:ORM

静态网页:网页内容,直接写到HTML中;

动态网页:对用户发起的请求,动态提供内容,实时读取数据库信息,呈现在网页上;

数据库是网站最基本和底层的组成:

  • Python本身有读取数据库的模块,可使用SQL语句直接实现程序和数据库的交互;
  • Django中与数据库的交互方式,则是ORM(Object-Relational Mapping),即对象关系映射;

ORM在关系型数据库与业务实体对象之间映射,避免了通过复杂的SQL操作业务对象,只需简单操作对象的属性和方法;

Django的数据模型层大量使用ORM:

  • 可移植性好,如从SQLite改为至MySQL数据库,只需在settings.py中配置新数据库,再进行数据迁移,即可完成数据库的移植,无需修改ORM;
  • 安全性好,由于基本不需要执行SQL,也不必担心SQL注入等形式的攻击;此外,ORM还提供了自动引用和转义变量的机制,安全性更好;
  • 查询语法简单,操作Python对象,让语法更加简洁;

Django的ORM表现方式就是编写数据模型类:

  • 通常需要写到应用的models.py文件中;
  • 每个数据模型类都是django.db.models.Model的子类;
  • 应用的名称小写_数据模型类的名称小写 共同组成一个数据库表的名称;
  • 已编写好的数据模型类,再执行Django的数据迁移操作即可创建相应的数据库表,进而保存网站数据:
    • python manage.py makemigrations
    • python manage.py migrate
  • 后续如果要修改数据库表结构,也只需修改数据模型类,即可完成对数据库表结构的调整;

你可能感兴趣的:(Python语言程序设计)