网络协议

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

  


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后端开发面试总结的更多相关文章

  1. 转载关于Python Web后端开发面试心得

    先介绍下我的情况:通信背景,工作一年多不到两年.之前一直在做C++的MFC软件界面开发工作.公司为某不景气的国企研究所.(喏,我的工作经验很水:1是方向不对:2是行业有偏差).然后目前是在寻找Pyth ...

  2. Python后端开发要求

    关于Python后端开发要求 一.对Python有兴趣,熟悉Python(标准库) 最好阅读过源码 了解Python的优化(熟悉pypy更佳) 二.至少至少一门语言(不说"精通") ...

  3. 杂记:腾讯暑期实习 Web 后端开发面试经历

    今天面试(一面)腾讯暑期实习 Web 后端开发,一言难尽. 第一部分,常规的自我介绍. 介绍完,面试官问我对人工智能有什么理解?深度学习和机器学习的区别?对调参有什么见解?语音识别中怎样运用了机器学习 ...

  4. python后端开发工程师考证试题

    python开发工程师考证试题 问答题链接 python开发工程师考证试题 选择题 题目 关于 Python 程序格式框架的描述,以下选项中错误的是 ( A ) A: Python 语言不采用严格的“ ...

  5. python测试开发面试之深浅拷贝

    先来道题热热身 a = ('a', 'b','c') c = copy.copy(a) d = copy.deepcopy(a) if c == d: print("c和d的值相等" ...

  6. 2020 python web开发就业要求锦集

    郑州 Python程序员 河南三融云合信息技术有限公司 6-8k·12薪 7个工作日内反馈 郑州 1个月前 本科及以上2年以上语言不限年龄不限 微信扫码分享 收藏 Python程序员 河南三融云合信息 ...

  7. (java web后端方向)如何让你的简历为你争取到更多的面试机会,内容来自java web轻量级开发面试教程

    我们在做培训时,会发现一个不合理的情况,一些程序员能力不错,在公司里也是技术牛人,但发出去的简历往往会石沉大海,没有回复.对于刚毕业的大学生或工作年限在2年之内的程序员,这个情况会更严重. 这种情况下 ...

  8. 最近面试java后端开发的感受:如果就以平时项目经验来面试,通过估计很难——再论面试前的准备

    在上周,我密集面试了若干位Java后端的候选人,工作经验在3到5年间.我的标准其实不复杂:第一能干活,第二Java基础要好,第三最好熟悉些分布式框架,我相信其它公司招初级开发时,应该也照着这个标准来面 ...

  9. 【Python全栈-后端开发】嵩天老师-Django

    嵩天老师-Python云端系统开发入门教程(Django) 视频地址:https://www.bilibili.com/video/av19801429 课前知识储备: 一.课程介绍: 分久必合.合久 ...

随机推荐

  1. HTTP助记

    1** 信息,服务器收到请求,需要请求者继续执行操作 100 continue 继续,客户端应继续请求 101 swithching protocls 切换协议,服务器根据客户端的请求切换协议.只能切 ...

  2. uniapp 微信授权登陆

    准备工作: 1.微信开发者账号 2.AppId .AppSecret (这些可以在开放平台申请到) 第一步 添加移动应用,仔细添加上述信息: 审批通过后,即刻 第二步 打开uniapp,开启OAuth ...

  3. 一种不错的 BFF Microservice GraphQL/REST API 层的开发方式

    云原生(Cloud Native)Node JS Express Reactive 微服务模板 (REST/GraphQL) 这个项目提供了完整的基于 Node JS / Typescript 的微服 ...

  4. Markdown 公式指导手册

    本文为 Markdown 环境下的常用语法指引.Typora 编辑阅读器支持 \(\LaTeX\) 编辑显示支持,例如:\(\sum_{i=1}^n a_i=0\),访问 MathJax 以参考更多使 ...

  5. ACM训练赛:第20次

    这次的题思维都很强,等之后的考试结束会集中精力重新训练一些思维题. A - A simple question CodeForces - 520B 思路: 直接看的话,很容易发现如果 \(n > ...

  6. Day5 - 06 函数的参数-命名关键字参数

    引子:对于关键字参数,调用时可以传入任意个不受限制的关键字参数,至于到底传入了哪些,就需要在函数内部通过[函数里定义的关键字参数]检查,例子里就是通过otherinfo检查.        >& ...

  7. 11g rac关闭、开启(顺序)

    1.关闭数据库(oracle) srvctl stop database -d rac 2.关闭集群(root) /u01/app/11.2.0/grid/bin/crsctl stop cluste ...

  8. db2常用操作

    1. db2建立远程节点编目及删除 db2 catalog tcpip node nodeName remote remoteIp server remotePort db2 list node di ...

  9. Numpy的学习2-基础转换

    import numpy as np A = np.arange(2, 14).reshape((3, 4)) # array([[ 2, 3, 4, 5] # [ 6, 7, 8, 9] # [10 ...

  10. Python(循环语句与数据类型)

    循环语句 对于python来说 基本上循环用的两个 wile 跟静态语言相似 下来是for循环 这个就跟静态语言大大不同了 wile 条件:–>while 循环也就是 当条件为真的时候会一直循环 ...