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)

相关推荐
a努力。1 小时前
得物Java面试被问:Netty的ByteBuf引用计数和内存释放
java·开发语言·分布式·python·面试·职场和发展
CTO Plus技术服务中1 小时前
大厂面试笔记和参考答案!浏览器自动化、自动化测试、自动化运维与开发、办公自动化
运维·笔记·面试
xiaoxue..1 小时前
Nest.js 框架 企业级开发通关手册
面试·typescript·node.js·开发框架·nest.js
源代码•宸2 小时前
大厂技术岗面试之一面(准备自我介绍、反问)
经验分享·后端·算法·面试·职场和发展·golang·反问
写代码的【黑咖啡】3 小时前
Python中的JSON处理(标准库)
开发语言·python·json
oscar9998 小时前
软件测试面试全攻略之初级篇
软件测试·面试·职场和发展·初级篇
梨子串桃子_10 小时前
推荐系统学习笔记 | PyTorch学习笔记
pytorch·笔记·python·学习·算法
文言一心11 小时前
LINUX离线升级 Python 至 3.11.9 操作手册
linux·运维·python