[ python面试考试[2] ]


一. http请求

# rest ful设计风格     # GET       一般用来获取数据, 传数据的方式一般是Url地址后面加?就是params参数     # POST      一般用来创建数据, 一般以json的方式传输, 其他form表单, params等等也可以     # PUT       一般用来修改     # DELETE    一般用来删除     # OPTIONS   前后端分离的情况下, 每次请求之前都会先发这个请求确认

二. GIT workflow 只有一个master分支, 所有提交都直接添加到master分支, 不好管理。

# 之前的工作流是,克隆git clone , git checkout -b mybranch 创建本地个人分支, 修改代码完成后git add , git commit     # git push mybranch吧这个本地分支xxx到github上的个人的分支     # 由在github上由管理员进行pull request操作, 当github上的master更新后     # 我会切换到本地master分支,删除本地的mybranch分支, 再执行git pull更新本地的主分支

三. Django使用的是MTV模型

# 模型, 模板, 视图     # 请求到来request -> 到视图view -> 数据库模型获取数据model -> 返回到视图view -> 模板渲染template -> 响应response     # 1. 前端的页面存在的文本框假设为form表单提交数据, 当点击提交时     # 2. 请求通过路由,和method请求类型,匹配到对应的视图函数     # 3. 视图通过sum = request.POST.get('a') + request.POST.get('a')获取form表单数据       # 4. 使用render(request, 'xxxx.html', {'sum': sum})     # 5. django模板里使用 {{ sum }} 获取上下渲染, 渲染完成后响应给前端浏览器

四. 数据通讯

如何实现同一台电脑同一个浏览器多个标签之间的通讯?

# 1. 使用websocket协议通信, 浏览器连接上服务器, 服务端收到标签页1数据, 把数据分发给其他标签, 实现聊天功能     # 2. 前端使用localStorage把数据保存到浏览器, 如token

如何实现同一台电脑上的不同浏览器之间的通讯?

# 1. websocket协议     # 2. 一个窗口更新localStorage,另一个窗口监听window对象的storage(需要同源, 协议,域名,端口相同)

如何实现手机浏览器和电脑浏览器之间的通讯?

# 1. websocket协议

五. async/await 一般用来解决什么问题?用你认为最简洁的方式描述一下。

# 协程的时候使用 asyncio.run 就会进入async模式, 就会由enevt loop大脑来控制程序, 大脑会把async def开头变成task任务     # 由event loop大脑决定执行哪个task     # await是把task控制权交给event loop大脑

六 请写一段代码演示传值调用和传址调用的区别?

不可变对象

def func1(data1):     data1 = 100     print(f'func1调用:{data1}')

data1 = 0 print(f'fucn1调用前:{data1}')   # fucn1调用前:0 func1(data1) print(f'func1调用后:{data1}')   # func1调用后:0

可变对象

def func2(data2):     data2.append(100)     print(f'func2调用:{data2}') data2 = [] print(f'func2调用前:{data2}')   # func2调用前:[100] func2(data2)     print(f'func2调用后:{data2}')   # func2调用后:[100]

七 假设有两个布尔条件,分别是 A 和 B,请写出 一种 A && B (或者 A and B) 的等价形式。

001. 在Python中, 有关字符串的运算结果

strs = "I like python and java"
one = strs.find("n")
two = strs.rfind("n")

002. python字符串

strs = 'abacabbba'
print(strs.strip("ab")) # 去除

003. python字典

tmp = dict.formkeys(['a', 'b'], 4)
print(p) # {'a': 4, 'b': 4}

python的数据类型

python的 type 和isinstance区别