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 课前知识储备: 一.课程介绍: 分久必合.合久 ...
随机推荐
- js防抖与节流了解一下
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- Java集合源码分析(四)——Vector
简介 Vector 是矢量队列,它是JDK1.0版本添加的类.继承于AbstractList,实现了List, RandomAccess, Cloneable这些接口. 和ArrayList不同,Ve ...
- STM32系统时钟RCC(基于HAL库)
基础认识 为什么要有时钟: 时钟就是单片机的心脏,其每跳动一次,整个单片机的电路就会同步动作一次.时钟的速率决定了两次动作的间隔时间.速率越快,单片机在单位时间内所执行的动作将越多.时钟是单片机运行的 ...
- 微信小程序云开发如何上手
简要介绍 微信小程序云开发,是基于 Serverless 的一站式后端云服务,涵盖函数.数据库.存储.CDN等服务,免后端运维.基于云开发可以免鉴权调用微信所有开放能力. 前提准备 微信开发者工具 创 ...
- 【Django】django.core.exceptions.ImproperlyConfigured: mysqlclient 1.4.0 or newer is required;
报错信息 django.core.exceptions.ImproperlyConfigured: mysqlclient 1.4.0 or newer is required; you have 0 ...
- 七、TestNG传递参数2
数据提供者本身可以接受两个类型的参数:Method和ITestContext 在创建@DataProvider方法是可以有四种格式如图: 第一种在上一篇中有学到 1-Methode参数使用 @Data ...
- swig python dynamic module does not define init function
example_module = Extension('_example', sources=['example_wrap.c', 'example.c'], ) setup (name = 'exa ...
- css 02-CSS属性:背景属性
02-CSS属性:背景属性 #background 的常见背景属性 css2.1 中,常见的背景属性有以下几种:(经常用到,要记住) background-color:#ff99ff; 设置元素的背景 ...
- Java 方法内联
什么是Java 方法内联? 我们先来看看普遍的内联函数含义.在维基百科中解释为: 内联函数:在计算机科学中,内联函数(有时称作在线函数或编译时期展开函数)是一种编程语言结构,用来建议编译器对一些特殊函 ...
- Python 刷题笔记
Python 刷题笔记 本文记录了我在使用python刷题的时候遇到的知识点. 目录 Python 刷题笔记 选择.填空题 基本输入输出 sys.stdin 与input 运行脚本时传入参数 Pyth ...