分类目录归档:backend

[ 图片验证码识别 ]


git转换为图片(其实是由4张图片组成)

fron PIL inport Image
import numpy as np
import cv2

path = r'xxx.gif'
image = Image.open(path)

shapes = []
for i in range(0, 4):
    image.seek(i)
    image.save(r'./{}.png'.format(i))
    shapes.append(np.array(image))

cv2.imwrite(r'reult.png', '&

< Read more >

[ 计算机网络面试题[1] ]


一.<基础>

1. post与get

restful风格 get动作一般表示获取数据用 post 动作表示创建数据用 put 动作表示修改数据用 delete 动作表示删除数据用

2. get长度限制?

协议上是没有限制 但是浏览器是有限制的, 不同浏览器的限制长度不同

3. nginx

4. docker commit?

5. linux 的top , 开放端口命令

二.<项目>

1. 上一家公司是做什么, 主要业务是什么, 做过哪些项目, 项目使用了哪些技术, 在最近这个项目中担任什么角色, 是核心开发还是辅助开发

○ 上一家公司是做智能手写笔,围绕开发对应的app

< Read more >

[ Flask基础面试题目 ]


Django 和 SQLAlchemy 之间比较

1. Django

django的orm是活动记录的方式来实现的, 数据库中的每行数据都直接隐射到代码对象中

2. sqlalchemy

SQLAlcyhemy 是数据映射实现,数据库结构和对象结构之间存在间隙,必须使用另外的持久层来保持与数据库的交互(例如保存对象),不会捆绑并强迫严格遵照活动记录来考量。适用于复杂的查询。

总结

Django 适用于所有常规 CRUD 操作。会自动生成主键,会自动提交等。Django Model 更简洁一些。例如对于类关联,Django 只要直接声明外键,就自动产生关联对象,而 SQLAlcyhemy

< Read more >

[ Redis面试题 ]


一.redis为什么那么快

  • io多路复用, 数据存在内存

二.redis单线程多线程6.x以后版本

  1. 多路复用器(不负责数据的读写)为io多线程

    • 就是多个客户端与服务端连接时, io多路复用程序(多线程)会监听socket(用户连接)是否进行read, write等操作时, 会把这些指令封装成一个事件, 分发给文件处理分发器(单线程).
  2. redis工作线程只有一条

    • redis的操作式原子的单指令, pipline一个客户端的集合lua脚本的方式
    • 事务的执行是原子性的, 不存在回滚的操作, 尽量少使用事务, 事务内指令尽量少, 尽量快.

三.redis持久化存储

RDB,

< Read more >

[ Python基础面试题 ]


语言基础

1. 垃圾回收

  1. 引用计数 在python中每当你建立了一个Object的时候, Python都会帮你数着, 这个object上有多少个引用。当我们写python的时候呢,我们是不需要考虑引用这些事情的,引用的增加和减少都是在cpython中帮我们处理好了的。

引用计数是一种垃圾回收机制,它用于跟踪每个对象被引用的次数。每当一个对象被引用时,其引用计数加1;当一个引用指向该对象被删除或者超出作用域时,其引用计数减1。当引用计数减少到0时,对象就不再被引用,可以认为它没有被使用,此时垃圾回收器会自动回收该对象的内存空间。

Python中的引用计数机制是一种轻量级的垃圾回收机制,它是实

< Read more >

[ python面试考试[2] ]


一. http请求

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

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

# 之前的工作流是,克隆

< Read more >

[ python面试考试[1] ]


# Scoring criteria:
# 5: pythonic     meeting grade 4, and coding in pythonic way
# 4: complete     correct logic and result. no bug
# 3: minor bug        very close to correct answer. missing corner case or a bit format/cosmetic issue
# 2: medium bug   algorithm can run but answer not right, missin

< Read more >

[ traceback模块 ]


异常日志记录

日志保存到文本

import traceback

a = ["hello", "yoyo"]
try:
    print(a[4])
except Exception as e:
    fp = open('log.txt', 'a')
    traceback.print_exc(file=fp)
    fp.close()

如果不想写入到文件,也可以暂时写入到内存(StringIO),后面需要用到的时候再读出来

from io import StringIO
import traceback

< Read more >