zoukankan      html  css  js  c++  java
  • 一次可以面向百度的笔试

    1 描述一下python的垃圾回收机制

    垃圾回收机制 是Python内置的一个内存管理机制。
    如果一个对象引用计数为0(没有被引用),那么它就会被立马回收掉。
    针对循环引用的用到标记清除和分代回收。
    

    2 ascii、unicode、utf-8、gbk 分别是什么?

    ASCII: 只采用1个字节对应一个英文字符。
    GBK: 采用1个字节对应一个英文字符,采用2个字节对应一个中文字符。
    unicode: 采用2个字节对应一个字符,(无论是英文还是中文,都是采用2个字符)
    utf-8:采用1个字节对应一个英文字符,采用3个字节对应一个中文字符。
    

    3 三元表达式编写格式

    value = true if condition else false
    

    4 用一行代码实现数值交换

    a,b = b,a
    

    5 xrange 和 range 的区别

    只有在python2中才有xrange和range
    在python2中,range得到的是一个列表,xrange得到的是一个生成器对象
    

    6 如何实现字符串的反转?如:name="张全蛋"请反转为name= " "

    l = list('蛋全张')
    l.reverse()
    res = "".join(l)
    print(res)
    

    7 is 和==的区别

    is:比较左右两个的id是否相等
    ==:比较左右两个的value值是否相等
    

    8 下面代码的输出结果将是什么?

    list = ['a', 'b', 'c', 'd', 'e']
    print(list[10:])
    
    []
    

    9 简述Python的深浅拷贝

    浅拷贝不区分可变容器类型中的可变不可变类型. 对于可变类型共用一份内存地址, 对于不可变类型在没有修改之前共用一份内存地址
    
    深拷贝对可变容器类型中的可变不可变类型. 对于可变类型创建一份新的内存地址, 对于不可变类型在没有修改之前任然共用一份内存地址
    

    10 有用过with statement(语句)吗?它的好处是什么,自己实现一个(上下文管理器)

    用过。
    
    with语句会在嵌套的代码执行之后,自动关闭文件。这种做法的还有另一个优势就是,无论嵌套的代码是以何种方式结束的,它都关闭文件。
    
    
    with open('a.txt', 'w') as f:
        f.write('Hello World!')
    

    11 实现一个Singleton单例类,要求遵循基本语言编程规范(用尽量多的方式)

    class Singleton(object):
        def __init__(self, *args, **kwargs):
            pass
    
        @classmethod
        def get_instance(cls, *args, **kwargs):
            # 利用反射,看看这个类有没有_instance属性
            if not hasattr(Singleton, '_instance'):
                Singleton._instance = Singleton(*args, **kwargs)
            return Singleton._instance
    
    
    s1 = Singleton()  # 使用这种方式创建实例的时候,并不能保证单例
    s2 = Singleton.get_instance()  # 只有使用这种方式创建的时候才可以实现单例
    s3 = Singleton()
    s4 = Singleton.get_instance()
    
    print(id(s1), id(s2), id(s3), id(s4))
    

    12 简述HTTP协议

    HTTP就是Hyper Text Transfer Protocol(超文本传输协议)
    用来规定服务端和浏览器之间的数据交互的格式...
    四大特性:
    	1.基于请求响应
    	
    	2.基于TCP/IP 作用与应用程序之上的协议
    	
    	3.无状态
    		不保存用户的信息
    			eg:一个人来了一千次  你都记不住 每次都当他如初见
    			由于HTTP协议 是无状态的 所以后续出现了一些专门用来记录用户状态的技术:
    				Cookie、Session、Token...
    				
    	4.无/短连接
    		请求来一次 我响应一次 之后就再也没有任何链接和关系了
    			长链接:双方建立连接后 默认不断开 websocket(后面讲项目的时候会讲)
    

    13 HTTP协议状态码有什么用,列出你知道的HTTP协议的状态码,然后讲出他们都表示什么意思,301和302的区别

    用一串简单的数字表示一些复杂的状态或者描述性信息
    
    1xx	 服务端已经接收到了你的数据 正在处理 你可以继续提交额外的数据
        2xx	 服务端成功响应了你想要的数据(200 OK 请求成功)
        3xx	 重定向(当你在访问一个需要登录之后才能看的页面,会自动跳转到登录页面)
        4xx	 客户端错误,请求包含语法错误或无法完成请求
        	404:请求资源不存在
        	403:当前请求不合法 或者 不符合访问资源的条件
        5xx	 服务器错误,服务器在处理请求的过程中发生了错误(500,服务器炸了,机房着火了)
    
    
    301适合永久重定向
    302用来做临时跳转
    

    14 什么是MTV?

    MTV:Django号称是MTV模型
    M:models
    T:templates
    V:views
    
    
    Model(模型): 负责业务对象与数据库的对象(ORM)。
    
    Template(模板):负责如何把页面展示给用户。
    
    View(视图):负责业务逻辑,并在适当的时候调用Model和Template。
    

    15 什么是CGI,FastCGI,WSGI,uWSGI,uwsgi

    CGI:通用网关接口,一个标准,定义了客户端服务器之间如何传数据
    FastCGI:让交互程序与Web服务器通信的协议,CGI的升级版 
    WSGI:为Python定义的web服务器和web框架之间的接口标准
    uWSGI:一个实现了WSGI的服务器
    uwsgi:uWSGI自有的一个协议
    

    16 django 对数据查询结果排序怎么做, 降序怎么做

    升序
    User.objects.all().order_by('id')
    
    降序
    User.objects.all().order_by('-id')
    

    17 django 中 values 和 values_list 的区别?

    values:返回每行数据为字典格式
    
    values_list: 返回每行数据为元组格式
    

    18 基于django使用ajax发送post请求时,有哪种方法携带csrftoken?

    #1.后端将csrftoken传到前端,发送post请求时携带这个值发送
    data: {
                 csrfmiddlewaretoken: '{{ csrf_token }}'
            },
    #2.获取form中隐藏标签的csrftoken值,加入到请求数据中传给后端
     data: {
             csrfmiddlewaretoken:$('[name="csrfmiddlewaretoken"]').val()
             },
    #3.cookie中存在csrftoken,将csrftoken值放到请求头中
    headers:{ "X-CSRFtoken":$.cookie("csrftoken")},
    

    19 django 路由系统中 name 的作用

    1.根据name生成新的url
    2.修改当前url(起别名)
    

    20 django 的 Model 中的 ForeignKey 字段中的 on_delete 参数有什么作用

    级联删除,数据库中其他表中的相关联的数据也会被删除
    

    21 django 中 filter 和 exclude 的区别

    1. filter :将满足条件的数据提取出来,返回一个新的 QuerySet
    2. exclude :排除满足条件的数据,返回一个新的 QuerySet
    

    22 简述 django FBV 和 CBV?

    FBV(function base views) 就是在视图里使用函数处理请求。
    
    CBV(class base views) 就是在视图里使用类处理请求。
    

    23 简述django中间件几个方法及其应用场景?

    process_request() 发送请求
    process_view() 执行完 request 预处理函数并确定待执行的view之后,但在view函数实际执行之前。
    process_template_response() 返回一个实现了render方法的响应对象。
    process_exception() 收集错误信息,
    process_response() 返回 HttpResponse 对象。
    

    24 列举 django orm 中你了解的所有方法?

    all()	查询所有结果
    filter(**kwargs)	它包含了与所给筛选条件相匹配的对象。获取不到返回None
    get(**kwargs)	返回与所给筛选条件相匹配的对象,返回结果有且只有一个。
    exclude(**kwargs)	它包含了与所给筛选条件不匹配的对象
    order_by(*field)	对查询结果排序
    reverse()	对查询结果反向排序
    count()	返回数据库中匹配查询(QuerySet)的对象数量
    first()	返回第一条记录
    last()	返回最后一条记录
    exists()	如果QuerySet包含数据,就返回True,否则返回False
    values(*field)	返回一个ValueQuerySet
    values_list(*field)	它与values()非常相似,它返回的是一个元组序列,values返回的是一个字典序列
    distinct()	从返回结果中剔除重复纪录
    

    25 什么是反向解析?

    定义url时,需要为include定义namespace属性,为url定义name属性
    无论url怎么改变,只要视图函数的名称不变,模板都可以反向解析到该视图函数。
    

    26 Django对数据查询结果排序怎么做,降序怎么做,查询大于某个字段怎么做?

    升序:User.objects.all().order_by('id')
    
    降序:User.objects.all().order_by('-id')
    
    大于某个字段:filter(字段名_gt=值)
    

    27 描述cookie,session,token

    cookie:存储在浏览器中的用户数据
    session:服务器用于验证用户信息的身份标识
    token:无状态、可扩展的身份验证
    

    28 简述Django下的(内建的)缓存机制?

    浏览器第一次发出请求时,cache会缓存数据到内存中,设置header头部。
    再次发送请求时,如果缓存比较新,则会重新请求数据,
    如果缓存未过期,就直接返回给客户端。
    

    29 列出你知道的django中models字段类(如:AutoField)

    BooleanField()  布尔型字段,默认的表单窗口部件是CheckBoxInput
    
    CharField()  字符型字段,默认的表单窗口部件是TextInput。该字段类型有一个必需参数:max_length  在数据库水平限定了字符串最大长度
    
    DateField()  日期字段,字段的值是python中datetime.date的实例,
    
    DateTimeField()  日期和时间字段,值为datetime.datetime实例。默认的表单窗口以及可选参数同上。
    
    DecimalField()  混合精度的小数型数字字段。
    
    EmailField(max_length=254, **options)  邮件字段,使用EmailValidator进行验证
    
    FileField(upload_to=None, max_length=100, **options)  文件上传字段。
    
    FloatField()  浮点字段,默认的表单窗口部件是NumberInput。和DecimalField经常混淆不清,
    
    ImageField() 图像字段。继承了FileField的所有属性和方法。而且还能自动验证上传的对象是否为合法的图像。
    
    IntegerField  整形字段。
    
    TextField()   与CharField类似,但一般用来存储体积较大的文本。
    
    TimeField(auto_now=False, auto_now_add=False, **options)   时间字段,其值为datetime.time实例
    

    30 (编码题)用django实现,图书的增,删,查

    1 需要登陆,未登陆只能查看,登陆后可以删,增
    2 通过session实现登陆功能
    3 在中间件中控制未登陆跳转到登陆页面
    4 不要求页面好看,流程走通即可
    
  • 相关阅读:
    Debugger and device times have drifted by more than 60s. Please correct this by running adb shell "date `date +%m%d%H%M%Y.%S`" on your debugger machine.
    react native 动画组件Animated
    react-navigation 报错解决方法
    Java并发编程:线程池的使用
    如何设置eclipse下查看java源码
    接口和抽象类
    java接口可以继承多个接口
    抽象类和抽象方法的区别
    final
    static
  • 原文地址:https://www.cnblogs.com/xuexianqi/p/13210159.html
Copyright © 2011-2022 走看看