Django 面试常见问题

谈谈你对HTTP协议的认 识
  • 协议
    • 通信双方,在通信流程或内容格式上,共同遵守的标准
  • http协议
    • 互联网中最常见的网络通信标准
  • http协议的特点
    • 通信流程
      • 断开式(无状态)
        • http协议每次响应完成后,会断开与客户端的连接
      • 无状态
        • 由于服务器断开了之前的连接,就无法知晓连接间的关系
    • 内容格式
      • 消息头和消息体
列举Http请求中 常见的请求方式
  • HTTP/1.1协议中定义了八种方法,来表明Request-URL指定的资源不同的操作方式
  • OPTIONS
    • 返回服务器针对特定资源所支持的HTTP请求方法,也可以利用向web服务器发送 * 的请求来测试服务器的功能性
  • HEAD
    • 向服务器索与GET请求相一致的响应,只不过响应体将不会被返回。获取包含在响应消息头中的元信息
  • GET
    • 向特定的资源发出请求。
    • 发送一个请求来取得服务器上的某一资源
    • 资源通过一组HTTP头和呈现数据返回给客户端
    • GET请求中,永远不会包含呈现数据
  • POST
    • 想指定资源提交数据进行处理请求
    • 数据被包含在请求体重
    • POST请求可能会导致新的资源的建立或已有资源的修改
  • PUT
    • 向指定资源位置上传其最新内容
  • DELETE
    • 请求服务器删除Request-url所标识的资源
  • TRACE
    • 会显示服务器收到的请求,主要用于测试或者诊断
  • CONNECT
    • HTTP/1.1协议中预留给能够将连接改为管道方式的代理服务器
GET请求和POST请求的区别
  • GET请求无消息体,只能携带少量数据
  • POST请求有消息体,可以携带大量数据
  • 携带数据的方式
    • get请求将数据放在url地址中,提交的数据最多只能有1024字节
    • POST请求将数据放在消息体中,没有限制数据大小
简述MVC模式和MTV模式
  • MVC模式
    • 模型(M),负责业务对象与数据库的映射(ORM)
    • 视图(V),负责与用户的交互(页面)
    • 控制器(C),接受用户的输入调用模型和视图完成用户的请求
  • MTV
    • M,模型,负责业务对象和数据库的关系映射(ORM)
    • T,模板,负责如何把页面展示给用户
    • V,视图,负责业务逻辑,并在是适当的时候调用Model和Template
    • 除了以上,还需要一个URL分发器,作用是将一个个URL的页面请求分发给不同的View处理,View再调用相应的Model和Template
简述Django的请求生命周期
简述什么是FBV和CBV
  • FBV(function base views),在视图里使用函数处理请求
  • CBV(class base views),在视图里使用类处理请求
    • 优点
      • 提高代码的复用性,可以使用面向对象的技术,比如mixin(多继承)
      • 可以用不同的函数针对不同的HTTP方法处理,而不是通过很多if判断,提高代码可读性
谈谈对ORM的理解
  • ORM是"对象-关系-映射"的简称
  • MVC或者MTV中重要的一个部分,实现了数据模型与数据库的解耦
    • 即数据模型的设计不需要依赖于特定的数据库,通过简单的配置就可以轻松更换数据库
    • 这极大的减轻了开发人员的工作量,不需要面对因数据库变更而导致的无效劳作

详细笔记在:Python99网(https://python99.com/python-courses)

相关推荐
And_Ii3 小时前
leetCode 146. LRU 缓存
python·链表
问窗3 小时前
计算机视觉入门案例 高速公路车辆计数系统技术解析
python·opencv·计算机视觉
Fleshy数模3 小时前
基于机器视觉的工业产品型号识别与报警系统实现
python·ocr·pyqt
gf13211113 小时前
python_更新飞书多维表格的单项关联字段
数据库·python·飞书
2601_953660373 小时前
File类
linux·开发语言·python
GIOTTO情4 小时前
Infoseek 媒介投放 API 实战:基于 Python 的全流程自动化方案摘要
开发语言·python·自动化
广州灵眸科技有限公司4 小时前
瑞芯微(EASY EAI)RV1126B 千兆以太网电路
服务器·前端·人工智能·python·深度学习
AI人工智能+电脑小能手4 小时前
【大白话说Java面试题 第64题】【JVM篇】第24题:强引用、软引用、弱引用、虚引用分别是什么?
java·开发语言·jvm·面试
speop4 小时前
【thorough-pytorch】评价指标
人工智能·pytorch·python
怕浪猫4 小时前
小厂三年我现在怎么样了
后端·面试