Django面试题(附带答案),免下载

  1. Django的生命周期

当用户在浏览器输入url时,浏览器会生成请求头和请求体发送给服务端,url经过Django中的wsgi时请求对象创建完成,经过django的中间件,然后到路由系统匹配路由,匹配成功后走到相对应的views函数,视图函数执行相关的逻辑代码返回执行结果,Django把客户端想要的数据作为一个字符串返回给客户端,客户端接收数据,渲染到页面展现给用户

  1. 内置组件

Admin、from、modelfrom、model

  1. 缓存方案

设置缓存到内存

缓存到redis,配置redis

CACHES = {

    "default": {

        "BACKEND": "django_redis.cache.RedisCache",

        "LOCATION": "redis://ip:端口号",

        'PASSWORD':'密码',

        "OPTIONS": {

            "CLIENT_CLASS": "django_redis.client.DefaultClient",

        }

    }

}

    单个view缓存

        视图导入from django.views.decorators.cache import cache_page

        在需要进行缓存的视图函数上添加如下装饰器即可:

@cache_page(60 * 2)#20分钟

    底层缓存API

        视图导入 from django.core.cache import cache

    模板片段缓存

        使用cache标签进行缓存

在HTML文件中添加:

{%load cache%}

{%cache 60  缓存名字 %}

  1. FBV和CBV

FBV:基于函数的视图函数

CBV:基于类的视图函数

  1. session和cookie

区别:

    cookie数据存放在客户的浏览器上,session数据放在服务器上

cookie不是很安全,别人可以分析存放在本地的COOKIE并进行COOKIE欺骗

   考虑到安全应当使用session。

session会在一定时间内保存在服务器上。当访问增多,会比较占用你服务器的性能考虑到减轻服务器性能方面,应当使用COOKIE

单个cookie保存的数据不能超过4K,很多浏览器都限制一个站点最多保存20个cookie

建议:将登陆信息等重要信息存放为SESSION,其他信息如果需要保留,可以放在COOKIE中

Cookie代码

HttpCookie cookie = new HttpCookie("MyCook");//初使化并设置Cookie的名称

DateTime dt = DateTime.Now;

TimeSpan ts = new TimeSpan(0, 0, 1, 0, 0);//过期时间为1分钟

cookie.Expires = dt.Add(ts);//设置过期时间

cookie.Values.Add("userid", "value");

cookie.Values.Add("userid2", "value2");

Response.AppendCookie(cookie);

  1. HTTP请求常见的方式

1、opions   返回服务器针对特定资源所支持的HTML请求方法   或web服务器发送测试服务器功能(允许客户端查看服务器性能)

2、Get   向特定资源发出请求(请求指定页面信息,并返回实体主体)

3、Post   向指定资源提交数据进行处理请求(提交表单、上传文件),又可能导致新的资源的建立或原有资源的修改

4、Put   向指定资源位置上上传其最新内容(从客户端向服务器传送的数据取代指定文档的内容)

5、Head  与服务器索与get请求一致的相应,响应体不会返回,获取包含在小消息头中的原信息(与get请求类似,返回的响应中没有具体内容,用于获取报头)

6、Delete   请求服务器删除request-URL所标示的资源(请求服务器删除页面)

7、Trace   回显服务器收到的请求,用于测试和诊断

8、Connect   HTTP/1.1协议中能够将连接改为管道方式的代理服务器

 

  1. MVC和MTV模式

MTV:Model(模型):负责业务对象与数据库的对象(ORM)

     Template(模版):负责如何把页面展示给用户

        View(视图):负责业务逻辑,并在适当的时候调用Model和Template

 

MVC: 所谓MVC就是把web应用分为模型(M),控制器(C),视图(V)三层;他们之间以一种插件似的,松耦合的方式连接在一起。模型负责业务对象与数据库的对象(ORM),视图负责与用户的交互(页面),控制器(C)接受用户的输入调用模型和视图完成用户的请求。

  1. ORM

对象关系映射

优点:

1、ORM使得我们的通用数据库交互变得简单易行,并且完全不用考虑开始的SQL语句。快速开发,由此而来。

2、可以避免一些新手程序猿写sql语句带来的性能效率和安全问题。

缺点:

1、性能有所牺牲,不过现在的各种ORM框架都在尝试使用各种方

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值