首页 > 技术文章 > python后端开发面试总结

zhoulangshunxinyangfan 2021-01-10 15:43 原文


网络协议

通信计算机双方必须共同遵从的一组约定,只有遵守这个约定,计算机之间才能相互通信交流

  


TCP / IP

    TCP/IP(传输控制协议/网际协议)是指能够在多个不同网络间实现信息传输的协议簇。TCP/IP协议不仅仅指的是TCP 和IP两个协议,而是指一个由FTP、SMTP、TCP、UDP、IP等协议构成的协议簇, 只是因为在TCP/IP协议中TCP协议和IP协议最具代表性,所以被称为TCP/IP协议
# TCP(传输控制协议)
""" TCP 为应用程序提供了可靠的传输流和虚拟连接服务。TCP主要提供数据流转送,可靠传输,有效流控制,全双工操作和多路传输技术 """
# IP(网际协议)
""" 提供一种无连接、不可靠的、尽力而为的数据包传输服务 """

HTTP

# HTTP(超文本传输协议)
""" HTTP基于TCP/IP协议,无状态;短链接;被动响应;工作在应用层(客户与服务器建立连接;客户向服务器提出请求;服务器接受请求,并根据请求返回相应的文件作为应答;客户与服务器关闭连接) """

restfull API 规范

"""
1, 域名
2, 版本
3, 路径
4, HTTP动词
5, 过滤
6, 状态码
7, 错误处理
8, 返回结果
9, 超媒体
0, 其他
"""

Django与Flask

# Flask
1:轻量级web框架,只有一个内核,默认依赖两个外部库:Jinja2 模板引擎和 Werkzeug WSGI 工具集,自由,灵活,可扩展性强
2:适用于做小型网站以及web服务的API,开发大型网站无压力,架构需自行设计
3:与关系型数据库结合不弱于Django,而与非关系型数据库的结合远远优于Django
​
# Django
1:重量级web框架,功能齐全,提供一站式解决的思路,能让开发者不用在选择应用上花费大量时间
2:自带ORM(Object-Relational Mapping 对象关联映射)和模板引擎,支持JinJa等非官方模板引擎,灵活度不高
3:自带ORM使Django和关系型数据库耦合度过高,如果要使用非关系型数据库,需要使用第三方库
4:自带数据库管理app
5:成熟、稳定、开发效率高、相对于Flask,Django的整体封闭性比较好,适合做企业级网站的开发
6:python web框架的先驱,第三方库丰富
7:上手容易,开发文档详细、完善、资料丰富

CBV与FBV

# FBV (function base views)
""" 在视图里使用函数处理请求,基本简单示例 """
path(r'longin/', views.login)         # 路由
​
def login(request):                   # 视图函数
    return  HTTPResponse("ok")
​
​
# CBV (class base views)
""" 就是在视图里使用类处理请求,基本简单示例 """
path(r'longin/', Login.as_view())     # 路由
​
class Login(View):
    def get(self, request):
        return  HTTPResponse("ok")
    
# 拓展
""" CBV内部封装的dispatch方法,通过反射进行不同请求方法的分发,本质和FBV是一样的 """

ORM

# ORM (Object Relational Mapping) 对象关系映射
""" 通过orm将编程语言的对象模型和数据库的关系模型建立映射关系,这样我们在使用编程语言对数据库进行操作的时候可以直接使用编程语言的对象模型进行操作就可以了,而不用直接使用sql语言 """
​
# 优点
    1,使我们构造数据结构变得简单易行
    2,完全不需要考虑复杂的sql语句,开发效率高
# 缺点
    1,自动化生成sql,牺牲一定的原生sql性能
    
# 拓展
    1,Django自带的Model
    2,有名的SQLAlchemy
    3,了解一点各自的语句,关键词

DRF

# Django REST framework 框架是一个用于构建Web API 的强大而又灵活的工具
1: 提供了定义序列化器Serializer的方法,可以快速根据 Django ORM 或者其它库自动序列化/反序列化;
2: 提供了丰富的类视图、Mixin扩展类,简化视图的编写;
3: 丰富的定制层级:函数视图、类视图、视图集合到自动生成 API,满足各种需要;
4: 直观的 API web 界面 ,可扩展性,插件丰富
    
# DRF组件
1: 认证Authentication
2: 权限Permissions
3: 限流Throttling
4: 过排Filtering
5: 分页Pagination
6: 接口文档coreapi

JWT

# Json Web Token 验证
​
1: 是什么
2: 优缺点
3: 原理

  

Celery

# Celery是一个简单、灵活且可靠的,处理大量消息的分布式系统,专注于实时处理的异步任务队列,同时也支持任务调度
​
1: 适用场景
    异步任务:将耗时操作任务提交给Celery去异步执行,比如发送短信/邮件、消息推送、音视频处理等
    定时任务:定时执行某件事情,比如每天数据统计等
2: 工作原理

RabbitMQ

 

git

git init                       # 当前目录下创建空仓库
​
配置用户
git config --global user.name 名字
git config --global user.email 邮箱
​
git status                     # 查看文件夹文件状态,红色未管理
git add .                      # 管理所有文件,绿色
git commit -m '第一版本'        # 生成版本
git log                        # 查看版本commit
git reset --hard 版本号         # 回滚版本
git reflog                     # 记录切换版本记录
git branch 分支名               # 创建分支
git checkout 分支名             # 切换分支
git branch -a                  # 查看所有分支
git merge 分支名                # 合并分支到master
git branch -d 分支名            # 删除分支
git clong                      # 克隆
git pull origin master         # 将远程master仓库与当前master更新
git push origin dev:master     # 将本地的dev分支推送到gitee的 master 主分支上

  

数据库

Mysql
Redis
Mongo

  

算法与数据结构

 

 

推荐阅读