python后端开发面试总结
网络协议
通信计算机双方必须共同遵从的一组约定,只有遵守这个约定,计算机之间才能相互通信交流
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
算法与数据结构
python后端开发面试总结的更多相关文章
- 转载关于Python Web后端开发面试心得
先介绍下我的情况:通信背景,工作一年多不到两年.之前一直在做C++的MFC软件界面开发工作.公司为某不景气的国企研究所.(喏,我的工作经验很水:1是方向不对:2是行业有偏差).然后目前是在寻找Pyth ...
- Python后端开发要求
关于Python后端开发要求 一.对Python有兴趣,熟悉Python(标准库) 最好阅读过源码 了解Python的优化(熟悉pypy更佳) 二.至少至少一门语言(不说"精通") ...
- 杂记:腾讯暑期实习 Web 后端开发面试经历
今天面试(一面)腾讯暑期实习 Web 后端开发,一言难尽. 第一部分,常规的自我介绍. 介绍完,面试官问我对人工智能有什么理解?深度学习和机器学习的区别?对调参有什么见解?语音识别中怎样运用了机器学习 ...
- python后端开发工程师考证试题
python开发工程师考证试题 问答题链接 python开发工程师考证试题 选择题 题目 关于 Python 程序格式框架的描述,以下选项中错误的是 ( A ) A: Python 语言不采用严格的“ ...
- python测试开发面试之深浅拷贝
先来道题热热身 a = ('a', 'b','c') c = copy.copy(a) d = copy.deepcopy(a) if c == d: print("c和d的值相等" ...
- 2020 python web开发就业要求锦集
郑州 Python程序员 河南三融云合信息技术有限公司 6-8k·12薪 7个工作日内反馈 郑州 1个月前 本科及以上2年以上语言不限年龄不限 微信扫码分享 收藏 Python程序员 河南三融云合信息 ...
- (java web后端方向)如何让你的简历为你争取到更多的面试机会,内容来自java web轻量级开发面试教程
我们在做培训时,会发现一个不合理的情况,一些程序员能力不错,在公司里也是技术牛人,但发出去的简历往往会石沉大海,没有回复.对于刚毕业的大学生或工作年限在2年之内的程序员,这个情况会更严重. 这种情况下 ...
- 最近面试java后端开发的感受:如果就以平时项目经验来面试,通过估计很难——再论面试前的准备
在上周,我密集面试了若干位Java后端的候选人,工作经验在3到5年间.我的标准其实不复杂:第一能干活,第二Java基础要好,第三最好熟悉些分布式框架,我相信其它公司招初级开发时,应该也照着这个标准来面 ...
- 【Python全栈-后端开发】嵩天老师-Django
嵩天老师-Python云端系统开发入门教程(Django) 视频地址:https://www.bilibili.com/video/av19801429 课前知识储备: 一.课程介绍: 分久必合.合久 ...
随机推荐
- Hbase 简单封装(Hbase 2.0+ API)
前言 封装了一些常用的方法 添加一行数据 创建表(单列族) 创建表(多列族) 删除表 判断表是否存在 获取一行数据(根据rowkey) 获取某个列族某个列的某行数据 打印出result(方便展示数据) ...
- [BJDCTF2020]ZJCTF,不过如此 php伪协议, preg_replace() 函数/e模式
转自https://www.cnblogs.com/gaonuoqi/p/12499623.html 题目给了源码 <?php error_reporting(0); $text = $_GET ...
- jupyterlab 增加新内核的方法ipykernel
参考: https://blog.csdn.net/C_chuxin/article/details/82690830
- hugegraph 数据存取数据解析
hugegraph 是百度开源的图数据库,支持hbase,mysql,rocksdb等作为存储后端.本文以EDGE 存储,hbase为存储后端,来探索是如何hugegraph是如何存取数据的. 存数据 ...
- Centos安装JDK、Tomcat
准备工作,先下载JDK.Tomcat包:使用FileZilla将软件包发送到/home/software目录下. 1 安装JDK8 首先卸载已有的JDK. # 查看版本 java -version # ...
- Day2 之 元组tuple
tuple 元组 也是有序列表 ,与list非常相似,但是tuple一旦初始化就不能修改. name = ('a','b',1,2,3,True) tuple ...
- base64 基本使用 和os模块使用
1 base64 的基本使用 import base64 with open('../static/upload/63bc620d1594779d6a98c53a3a8db1e5.png','rb' ...
- 1.微博回调接口 和绑定user接口
1.1 oauth/views.py 中添加试图函数 http://192.168.56.100:8888/oauth/weibo/callback/ # 通过vue前端传入的code,微博身份验证c ...
- CMake将生成的可执行文件保存到其他目录
在运行一些程序的时候,我们一般会把数据文件放在其他位置.而当在修改程序时,需要不断的修改代码,编译,执行.每次编译之后,都得将可执行文件复制到数据文件的目录. 这一问题有两种解决方法,一是直接在数据目 ...
- webshell学习
参考文章: https://www.bilibili.com/video/BV1T4411t7BW?p=14 https://blog.csdn.net/mmmsss987/article/detai ...