zoukankan      html  css  js  c++  java
  • 面试总结

    多线程是否成倍增加效率

    如果是CPU密集型的,每个线程执行一下,相当于单线程再跑,io切换浪费时间
    如果是IO密集型的,比如发送一个请求,等待服务器返回的时候,再次发送下一条url请求,这样在时间上复用了,效率也就提高了
    如果想利用cpu好python的,可以采用多进程,concurrent.futures中的ProcessPoolExecutor,ThreadPollExecutor
    mutiprocessing和gevent

    logging 怎么配置,有什么作用

    debug
    info
    warning
    error
    critical

    多线程在项目中哪里用到了

    数据库:
    1、修改一张表的一列数据如何修改
    update table_name set 字段名=新的字段名(值)
    alert  table table_name   rename 新表名
    alert table table_name add 字段名 数据类型 [约束条件]
    修改字段有modify和change两种方法
    alert table 表名 modify 字段名 字段类型 【完整约束条件】
    alert table 表名 change 旧字段名 新字段名 新数据类型 【完整约束条件】

    开启事务:begin  rollback  commit

    ajax 如何局部刷新,如何跨域

    ajax  是一个javascript + xml  异步执行

    Highchart应用在前端还是后端

    nginx,uwsgi 

    解析器有哪些,默认的   

    参考

    全局使用

        in settings.py  #直接copy REST_FRAMEWORK到配置文件就行  
            REST_FRAMEWORK = {  
                'DEFAULT_PARSER_CLASSES':[  
                    'rest_framework.parsers.JSONParser' #使用的解析器  
                    'rest_framework.parsers.FormParser'  
                    'rest_framework.parsers.MultiPartParser'  
                ]  
          
            }  
    multipart/form-data:当上传图片的时候用的到   === MultiPartParser
    JSONParser   ===   application/json
    FormParser  === application/x-www-form-urlencoded 
    FileUploadParser   === 针对上传文件

    业务:

    权限是调用的python内置的包吗
    权限:怎么做的限制,你做了哪些(按照有哪些表,哪些字段,实现了哪些功能)
    权限怎么给经营主任划分的,为什么要分组(权限)
    权限设计了多久
    你的业务参与了多少(都是你做的吗)
    权限怎么实现的(说一下代码)

    药品配送审核系统,心脑管家:
        你做了哪些功能,用了多长时间
        
    所有的业务你参与了多少

    有没有做过地图方面的
    用那些软件上线的

    复习CRM系统--stack

    请介绍下怎么开发的系统:

    第一步:url的设计,为每个model设计相对应的url(增删改查)

    django的url可以设计二级路由转发和一级路由

    crm系统设计,url设计方面,需要考虑一级转发和二级转发,现在我们使用的是一级转发:

    设计的时候模仿Admin开发一个注册model的类(StarkSite),这个类内部有一个字典类型的属性,把所有的注册的类存储起来,然后为每个存储的类生成一个相对应的url,每个类都会有增删改查对应的四条url,同时用用户也可以自定义url(在StarkSite下面定义一个函数用来确定用户增加自己的url).每条url都有自己的对应的视图函数。每条url都有一个反向解析

    需要注意:用户使用StarkSite注册自己的类的时候,类的一些基本配置默认继承一个类(ModelConfig类)-定制了默认基本的配置,如显示字段控制,多级过滤,定制按钮和默认显示什么样的按钮

    路由需要注意的知识点 :

    获取model的名称:self.model._meta.model_name 
    获取App名称:self.model._meta.app_label 

    第二步:

     ChangeList用户可以自定义前端显示定制的字段名称,比如,可定义跟进记录。定义前端显示字段,定制了一个类来进行统一处理,在前端显示字段。

    每一条数据,默认编辑字段和删除字段,checkbox字段,编辑字段和删除字段,需要根据用户权限或者用户自定义进行判断

    表格头部显示字段的要求:

    但是ModelConfig有默认的显示字段,需要有专门的函数处理相应的字段,这个处理函数的目的主要是构建前端显示的字段:如选择框,是否显示编辑、删除按钮。编辑按钮是在用户没有自定义的情况下并且,用户有编辑权限,才把ModelConfig默认编辑按钮添加上,删除按钮用户必须有删除权限

    form 组建choice类型有:choicefilet 、multipleChoiceFiled

    form前端自动生成:使用form.as_p

    modelform需要进行进行更新的时候,需要指定instance=obj,不指定相当于创建

    表格主体显示内容要求:

    表格主体上的按钮(编辑,删除)咨询医生等按钮需要,根据model获取字段名称,进行字段类型判断,字段类型是否是多对多和一对多进行判断。

    添加视图函数:需要判断是GET请求还是POST请求,如果是post请求,需要保存数据且判断是否是pop弹窗

    需要注意的是:创建一个函数,隶属于ModelConfig,根据用户当前的model,创建Modelform对象(get_model_form)。这样在实例化的时候,动态的根据用户所在的表结构进行添加数据,判断用户可以自定义Modelform,没有定义使用默认的

    编辑视图函数:和添加视图一样,根据用户当前的model,创建Modelform对象(get_model_form)。这样在实例化的时候,动态的根据用户所在的表结构进行添加数据,判断用户可以自定义Modelform,没有定义使用默认的。

    用户可以预定义编辑字段,代码实现,get_list_display 进行判断用户是否是,是否设置编辑字段,没有设置  list_display_link=【】,则使用默认的,出现编辑按钮。

    如果用户配置了ist_display_link=【】,前端进行body显示字段的时候就需要对出现在ist_display_link=【】中的字段进行设置编辑url

    
    

    总结:添加视图函数和编辑视图函数都是在一个get_model_form方法上,来判断用户是否自定义了modelform,有就使用用户自定义的,没有就使用默认的

    如何给字段添加编辑url?:

     在ModelStark类中进行

    用户可以预定义编辑字段,代码实现,get_list_display 进行判断用户是否是,是否设置编辑字段,没有设置  list_display_link=【】,则使用默认的,出现编辑按钮。

    如果用户配置了ist_display_link=【】,前端进行body显示字段的时候就需要对出现在ist_display_link=【】中的字段进行设置编辑url

    删除视图函数:

    分页

    自定义分页需要获取前端的request.GET----类型QuryDict类型。QuryDict需要设置_mutable=Tur才能修改数据类型

    需要记录当前页,数据库中的总条数,每夜显示的条数,当前数字前面和后面的数据。复制当前的请求,显示最多的页码,把分页做成插件,生成特顶的html页码在前端显示就可以

     分页时保留前段的条件:

    需要传给组建一个params,分页把该请求条件加到每个按键的后面

    批处理

    前端批量处理函数,需要自定义一个函数,和编辑函数一样,前端循环的时候,批量处理的select有一个name值,

    标签渲染

    前端标签渲染,定义一个类,然后通过该类,进行渲染标签,需要判断该类是什么类型的。获取该类下面的所有标签

    pop页面需要openner函数

    需要在index页面定义一个函数,然后再新建一个pop页面,定义的openner函数需要和index页面的函数一致

    如何防范dos攻击

    如何使用微信推送消息

    快排

    杭州芸品绿

    mysql的查询短链接 长链接

    怎么用django中间件应对高并发

    如何进行查找死锁的线程

    快排

    蒂联

    filter

    map

    zip

    reduce

    django的懶加载

    __get__

    getattr

    __getattribute__

    总结:不管属性存在与否,都执行__getattribute__,getattr,访问的属性有get,然会get函数的返回值

    io 多路复用

    restful 请求方法 header

    python2   python3

    python2 xrange 是生成器,range是列表

    python3  range是迭代对象

    yeild

    def count_down(n):
        while n>=0:
            newn = yield n 
            if newn:
                n = newn 
            else:
                n -= 1
                
    cd = count_down(5)
    for i in cd:
        print(i)
        if i == 5:
            cd.send(3)
    
    
    5210   #解释器打印出现53210

     高并发,循环引用,装饰器(类)

  • 相关阅读:
    SpringAOP-基于@AspectJ的简单入门
    SpringAOP-切面优先级
    Commons_IO_FileUtils的使用
    java_IO_装饰器
    java_IO_3
    java_IO_2
    java_IO_1
    App Inventor
    java学习_5_24
    java学习_5_23
  • 原文地址:https://www.cnblogs.com/huyangblog/p/9161669.html
Copyright © 2011-2022 走看看