目录

1.对Django的认识?

2.ORM是什么?优势?

3.Django 、Flask、Tornado的对比及为什么使用Django

4.get请求和post请求的区别

5.migrate与migration的区别

6.简述django请求的生命周期?

7.简述什么是FBV和CBV

8.HTTP响应常见状态码分类

9.Django重定向你是如何实现的?用的什么状态码?

10.django中csrf的实现机制?

11.cookie和session的区别:


1.对Django的认识?

1.Django是走大而全的方向,它最出名的是其全自动化的管理后台:只需要使用起ORM,做简单的对象定义,它就能自动生成数据
库结构、以及全功能的管理后台。
2.Django内置的ORM跟框架内的其他模块耦合程度高。应用程序必须使用Django内置的ORM,否则就不能享受到框架内提供的种种基于其ORM的便利;理论上可以切换掉其ORM模块,但这就相当于要把装修完毕的房子拆除重新装修,倒不如一开始就去毛胚房做全新的装修。
3.Django的卖点是超高的开发效率,其性能扩展有限;采用Django的项目,在流量达到一定规模后,都需要对其进行重构,才能
满足性能的要求。
4.Django适用的是中小型的网站,或者是作为大型网站快速实现产品雏形的工具。
5.Django模板的设计哲学是彻底的将代码、样式分离; Django从根本上杜绝在模板中进行编码、处理数据的可能。

2.ORM是什么?优势?

什么是ORM:
ORM(Object-relational mapping),中文翻译为对象关系映射,是一种为了解决面向对象与关系数据库
存在的互不匹配的现象的技术。简单的说,ORM是通过使用描述对象和数据库之间映射的元数据,将程序中
的对象自动持久化到关系数据库中。优势:
1)orm的技术特点,提高了开发效,可以自动对实体Entity对象与数据库中的Table进行字段与属性的映射;
2) 不用直接SQL编码,能够像操作对象一样从数据库中获取数据

3.Django 、Flask、Tornado的对比及为什么使用Django

Django:python界最全能的web开发框架,各种功能完善,可维护性金和开发速度一级棒。
Flas:微框架的典范,号称python代码写得最好的项目之一。flask灵活。
Tornado:天生异步,性能强悍,诸多的功能需要自己完善。1.Django走的是大而全的方向,开发效率高。它的MTV框架,自带的ORM,admin后台管理,自带的sqlit数据库
和开发测试用的服务器给开发者提供了
超高的开发效率
2.Flask是轻量级的框架,自由,灵活,可扩展性很强,核心基于Werkzeug WSGI工具和jinja2模板引擎
3.Tornado走的是少而精的方向,性能优越。它最出名的是异步非阻塞的设计方式

4.get请求和post请求的区别

1.get请求在浏览器地址栏拼接明文传输,post在请求体内稍微安全点。
2.get方式提交的数据最多是1024字节,而post没有限制。
3.get可以收藏为书签,而post不可以。
4.get和post在服务端请求数据的方式不一样。

5.migrate与migration的区别

migrations根据检测到的模型创建新的迁移。迁移的作用,更多的是将数据库的操作,以文件的形式记录下来,方便以后检查、调用、
重做等等。migrate 使数据库状态与当前模型集和迁移集同步。说白了,就是将对数据库的更改,主要是数据表设计的更改,在数据库中真实执行。
例如,新建、修改、删除数据表,新增、修改、删除某数据表内的字段等。

6.简述django请求的生命周期?


(1)用户输入网址,浏览器发起请求(2)WSGI(服务器网关接口)创建socket服务端,接受请求(3)中间件处理请求(4)url路由,根据当前请求的url找到相应的视图函数(5)进入view,进行业务处理,执行类或者函数,返回字符串(6)再次通过中间件处理相应(7)WSGI返回响应(8)浏览器渲染

7.简述什么是FBV和CBV

FBV和CBV本质是一样的
基于函数的视图叫做FBV,基于类的视图叫做CBV
在python中使用CBV的优点:
1)提高了代码的复用性,可以使用面向对象的技术,比如Mixin(多继承)
2)可以用不同的函数针对不同的HTTP方法处理,而不是通过很多if判断,提高代码可读性

8.HTTP响应常见状态码分类

9.Django重定向你是如何实现的?用的什么状态码?

1.使用HttpResponseRedirect:from django.http import HttpResponseRedirect 2.使用redirect和reverse状态码:301和302301和302的区别:
相同点:都表示重定向,浏览器在拿到服务器返回的这个状态码后会自动跳转到一个新的URL地址不同点:
1)301比较常用的场景是使用域名跳转。比如,我们访问 http://www.baidu.com 会跳转到https://www.baidu.com
表示旧地址A的资源已经被永久地移除了
2)302用来做临时跳转,比如未登陆的用户访问用户中心重定向到登录页面。表示旧地址A的资源还在(仍然可以访问),
这个重定向只是临时地从旧地址A跳转到地址B

10.django中csrf的实现机制?

1.django第一次响应来自某客户端的请求时,后端随机产生一个token值,把这个token保
存在SESSION状态中,同时,后端把这个token放到cookie中交给前端页面;
2.下次前端需要发起请求的时候把这个token值加入到请求数据或者头信息中,一起传给后端
3.后端校验前端请求带过来的token和SESSION里的token是否一致。

11.cookie和session的区别:

1.cookie:
cookie是保存在浏览器端的键值对,可以用来做用户认证2.session:
将用户的会话信息保存在服务端,key值是随机产生的自符串,value值时session的内容
依赖于cookie将每个用户的随机字符串保存到用户浏览器上
Django中session默认保存在数据库中:django_session表flask,session默认将加密的数据写在用户的cookie中

知识总结2:Django常见面试题总结(持续更新)相关推荐

  1. 面试1:Java、微服务、架构常见面试题(持续更新中)

    Java.微服务.架构常见面试题(持续更新中) 文章目录 Java.微服务.架构常见面试题(持续更新中) ==**Java**== 1.Java概述 (1)JVM.JRE和JDK (2)Java特点 ...

  2. 操作系统知识总结与常见面试题(持续更新)

    操作系统常见面试题 参考来源: 知乎@Joe.Zhao CSDN@易阳 CSDN@JXH_123 1. 什么是进程? (比较典型的定义) (1)进程是程序的一次执行 (2)进程是一个程序及其数据在处理 ...

  3. Java常见面试题(持续更新)

    文章目录 transient 关键字作用 final 关键字作用 封装的作用 HashMap,HashTable,ConcurrentHashMap HashMap不是线程安全的示例 HashMap常 ...

  4. Java 基础常见面试题(持续更新)

    目录 1.Java 程序设计概述 1.1.Java 跨平台运行的原理是什么? 1.2.Java 的安全性体现在哪些方面? 1.3.面向对象和面向过程的区别是什么? 1.4.面向对象的有哪些特征? 1. ...

  5. 数据结构与算法—链表常见面试题(持续更新)

    文章目录 一.链表环 1.判断链表是否有环 题目 方法1: 方法2: 二.反转链表 1.完全反转链表 题目: 方法1 方法2 2.反转部分链表 题目: 方法1 参考链接:https://blog.cs ...

  6. 测试人员常见面试题(持续更新)

    1.如何保证产品质量 前言:产品质量与团队中的每个人都息息相关,光靠测试难以保障,下面从流程,团队,技术手段,其他四个方面说明 (1)流程:制定出统一的产品迭代流程,不符合公司流程的一律打回,常见流程 ...

  7. mysql常见面试题(持续更新)

    1.mysql隔离级别有哪些?为什么要设计这几种隔离级别?默认隔离级别是啥?默认价格是如何避免幻读的?有哪些级别用了mvcc?不同级别的mvcc的区别?如果让你来设计,你还会想到其他方式达到这个效果嘛 ...

  8. 认真总结 HTTP常见面试题(持续更新)

    这两天学习了一些HTTP相关的知识点,总结记录一下. <好看的版本!!> https://www.yuque.com/docs/share/6f16ec3a-9418-49a6-9cde- ...

  9. Django常见面试题总结(二)

    接上篇文章:https://blog.csdn.net/YZL40514131/article/details/125813096?spm=1001.2014.3001.5501 二十一.select ...

  10. Mysql常见面试题(陆续更新中)...

    1.一张表,里面有ID自增主键,当insert了17条记录之后,删除了第15,16,17条记录,再把Mysql重启,再insert一条记录,这条记录的ID是18还是15? 答:(1)如果表的类型是My ...

最新文章

  1. ng-options渲染的第一项为空的解决办法
  2. 1503 - A PRIMARY KEY must include all columns in the table's partitioning function
  3. .net随笔-vb.net打开外部程序发送键盘信号(3)
  4. Python的列表List常见操作
  5. [计算机网络][HTTP]
  6. MarkDown 行首缩进
  7. iOS并发编程(GCD)学习笔记
  8. Win10安装和配置IIS web服务器环境来运行ASP(动态服务器页面)脚本
  9. vnc远程控制软件 有哪些vnc远程控制软件推荐
  10. Oracle如何导出存储过程
  11. 2203-python 24点游戏
  12. UEFI 编程(一)
  13. Python 3 《array》入门练习
  14. windows 查看/清除DNS解析记录
  15. unity动画系统之两个动画片段之间连线设置
  16. 通过excel文件在arcgis中点转面
  17. cf比赛A题总结(输出相同前缀数量的字符串)
  18. ​我的第三本译作《机器学习即服务》上架啦
  19. 中国石油大学《化工仪表及自动化》第二阶段在线作业
  20. 剑指Offer面试算法题Java实现

热门文章

  1. 十本数据结构与算法书籍推荐
  2. 新手入门 | 算法书籍推荐
  3. 惠普笔记本苹果w10双系统_苹果电脑安装双系统教程:MacOS和Win10双系统安装教程...
  4. iOS 实现Lottie动画
  5. 红米note2移动4g在哪里显示无服务器,小米 红米note2(移动版) 解锁教程
  6. Android studio做中国象棋,等级1(简单单人操作)
  7. ubuntu下使用命令行查看opencv版本
  8. qgis打开shp数据_关于QGIS打开SHP文件属性表乱码
  9. 临时邮箱有什么用,推荐5个临时邮箱
  10. 如何根据光学中像差(相位)求出其点扩散函数