Python面试笔记
主要复习python面试相关,和一些架构问题
Twish
这个作者很懒,什么都没留下…
展开
-
Python的概念化知识、一些优化技巧和常见算法性能优化(高级)
1、延迟加载模块延迟加载模块是指在全局导入时并不加载的模块。在Python中,import语句可以包含在函数内部,这样导入是在函数调用时才发生,而不是在全局导入时发生。在某些情况下,模块的这种加载方式可能比较合理,但是大多是情况下,这只是对设计不加的模块结构的变通方法(例如避免死循环导入),通常应避免这种加载方式,当然对于标准模块来说,没有理由使用延迟加载。2、项目基于Semver的好处通常...原创 2019-04-27 01:39:18 · 427 阅读 · 0 评论 -
Python一些基础琐碎容易忘记的小知识点总结
1.基本数据类型1.1Python3 中有六个标准的数据类型:Number(数字)String(字符串)List(列表)Tuple(元组)Set(集合)Dictionary(字典)1.2Python3 的六个标准数据类型中:不可变数据(3 个):Number(数字)、String(字符串)、Tuple(元组);可变数据(3 个):List(列表)、Dictionary(字典...原创 2019-04-15 00:45:49 · 238 阅读 · 0 评论 -
Python中高级数据存储及应用
1. 列表1.1列表的概念列表是一种存储大量数据的存储模型。1.2列表的特点列表具有索引的概念,可以通过索引操作列表中的数据。列表中的数据可以添加、删除、修改等操作1.3 列表的基本语法创建列表: 变量名 = [数据1,数据2,……]获取列表数据: 变量名[索引]修改列表数据: 变量名[索引] = 值list1 = [1,2,3,'Twiss','Iran','True','No...原创 2019-04-05 23:30:14 · 712 阅读 · 0 评论 -
Python实现-常用查找数据结构及算法
一、基本概念查找(Searching)就是根据给定的某个值,在查找表中确定一个其关键字等于给定值的数据元素(或记录)。查找表(Search Table):由同一类型的数据元素(或记录)构成的集合关键字(Key):数据元素中某个数据项的值,又称为键值。主键(Primary Key):可唯一地标识某个数据元素或记录的关键字。查找表按照操作方式可分为:静态查找表(Static Search ...原创 2019-03-31 23:01:11 · 535 阅读 · 0 评论 -
经典排序算法及python实现
选择排序选择排序(Selection sort)是一种简单直观的排序算法。它的工作原理是每一次从待排序的数据元素中选出最小(或最大)的一个元素,存放在序列的起始位置,直到全部待排序的数据元素排完。 选择排序是不稳定的排序方法(比如序列[5, 5, 3]第一次就将第一个[5]与[3]交换,导致第一个5挪动到第二个5后面)。(注:选自百度百科)假如,有一个无须序列A={6,3,1,9,2,5,8,...原创 2019-03-31 22:41:18 · 251 阅读 · 0 评论 -
python框架-Flask请求上下文
上下文管理:请求上下文(ctx=RequestContext()):request/sessionApp上下文(app_ctx=AppContext()): app/g程序启动: 两个Local: local1 = { } local2 = { }两个LocalStack: _request_ctx_stac...原创 2019-03-25 22:52:43 · 422 阅读 · 1 评论 -
python框架-Flask初探二
1. 路由和视图a. 路由设置的两种方式: @app.route('/xxx') def index(): return "index" def index(): return "index" app.add_url_rule("/xxx",None,index) 注意事项: - 不用让endpoint重名 - ...原创 2019-03-22 14:07:59 · 253 阅读 · 0 评论 -
python框架-Flask初探
1、安装pip3 install flask 2、特点短小精悍、可扩展强 的一个Web框架。注意:上下文管理机制依赖wsgi:werkzurgwerkzurg:示例一: from werkzeug.wrappers import Request, Response from werkzeug.serving import run_simple...原创 2019-03-21 16:47:48 · 314 阅读 · 0 评论 -
python项目篇-支付中心(以支付宝接口为例)
1. 获取用户提交数据{ balance:1000, money:900}balance = request.data.get("balance")money = request.data.get("money")2. 数据验证大于等于0个人账户是否有1000网站金币if user.auth.user.balance < balance:账户贝里原创 2019-03-15 23:18:30 · 565 阅读 · 0 评论 -
python项目篇-结算中心
1. POST请求,去结算 请求体: { courseids:[1,2] }业务处理: 1. 检测课程ID是否已经加入到购物车 2. 获取指定价格策略信息 3. 获取优惠券信息 4. 构造结构放入redis 2. GET请求,获取结算中心数据业务处理: 1. 获取结算中心里的课程信息(绑定课程优惠券) 2. 获取全局优惠券3. PATCH请求,选择优惠券...原创 2019-03-15 11:31:01 · 476 阅读 · 5 评论 -
python项目篇-购物车业务逻辑
加入购物车,保存到redis:a. 临时状态b. 修改购物信息结构:redis->{ shopping_car:{ 用户ID:{ 业务1:{ title:'法务', img:'/xx/xx/xx.png', policy:{ 10: {'name':'有效期1个月','price':123}, 11: {'name':'有效期3...原创 2019-03-14 19:04:47 · 735 阅读 · 1 评论 -
python面试题
第一部分 Python基础篇(80题)1、为什么学习Python?2、通过什么途径学习的Python?3、Python和Java、PHP、C、C#、C++等其他语言的对比?4、简述解释型和编译型编程语言?5、Python解释器种类以及特点?6、位和字节的关系?6、b、B、KB、MB、GB 的关系?7、请至少列举5个 PEP8 规范(越多越好)。8、通过代码实现如下转换:二进制转...原创 2019-03-30 23:00:09 · 28361 阅读 · 15 评论 -
python项目篇-表查询方式ORM正向和反向
1、表结构from django.db import models# Create your models here.class Publisher(models.Model): id = models.AutoField(primary_key=True) name = models.CharField(max_length=32)class Book(models...原创 2019-03-13 00:37:21 · 525 阅读 · 0 评论 -
python项目篇-django组件contenttype
1、组件的作用:可以通过两个字段让表和N张表创建FK关系2、表结构: from django.db import models from django.contrib.contenttypes.models import ContentType from django.contrib.contenttypes.fields import GenericForeignKey, ...原创 2019-03-12 12:18:36 · 203 阅读 · 0 评论 -
python面试笔记
1、Django请求声明周期(1)执行遵循wsgi协议的模块(socket服务端)from wsgiref.simple_server import make_server def RunServer(environ, start_response): start_response('200 OK', [('Content-Type', 'text/html')]) ...原创 2019-03-08 01:05:11 · 1398 阅读 · 3 评论 -
python项目篇-restframework源码分析
1 APIViewclass BookView(APIView):pass url(r'^books/$', views.BookView.as_view(),name="books"), url(r'^books/$', View类下的view,name="books"), 一旦访问books/: view(request)======APIView类下的dispatch()====请...原创 2019-03-04 23:02:40 · 255 阅读 · 0 评论 -
python项目篇-rest-framework框架
1、序列化1.1创建一个序列化类models部分:from django.db import modelsclass Book(models.Model): title=models.CharField(max_length=32) price=models.IntegerField() pub_date=models.DateField() publish...原创 2019-03-04 00:01:13 · 768 阅读 · 0 评论 -
python项目篇-Django的CBV和FBV概念
1、FBVFBV(function base views) 就是在视图里使用函数处理请求。2、CBVCBV(class base views) 就是在视图里使用类处理请求。Python是一个面向对象的编程语言,如果只用函数来开发,有很多面向对象的优点就错失了(继承、封装、多态)。所以Django在后来加入了Class-Based-View,可以让我们用类写View。这样做的优点主要下面两种...原创 2019-03-03 15:46:20 · 1086 阅读 · 1 评论 -
python项目篇-stark pop组件
继前几篇文章,今天总结pop组件构成在stark组件文件中的service 包stark.py中修改add_view方法class ModelStark(object): def add_view(self, request): ModelFormDemo = self.get_modelform_class() form = ModelForm...原创 2019-02-27 13:38:06 · 364 阅读 · 0 评论 -
python项目篇-stark之查询
1、首先在项目文件夹中stark.py中:class BookConfig(ModelStark): list_display = ["title","price",] list_display_links = ["title"] search_fields = ["title", "price"] modelform_class = BookModelForm...原创 2019-02-26 12:32:31 · 259 阅读 · 0 评论 -
python项目篇-stark之分页
1、引入utils分页组件2、将list_view中的数据封装成ShowList类3、在ShowList类中调用分页接口ShowList类:class ShowList(object): def __init__(self, config, data_list, request): self.config = config self.data_lis...原创 2019-02-26 12:24:08 · 195 阅读 · 0 评论 -
python项目篇-django模型多表操作
一、创建模型事例:作者模型:一个作者有姓名和年龄。作者详细模型:把作者的详情放到详情表,包含生日,手机号,家庭住址等信息。作者详情模型和作者模型之间是一对一的关系(one-to-one)出版商模型:出版商有名称,所在城市以及email。书籍模型: 书籍有书名和出版日期,一本书可能会有多个作者,一个作者也可以写多本书,所以作者和书籍的关系就是多对多的关联关系(many-to-man...原创 2019-02-21 13:50:20 · 272 阅读 · 0 评论 -
python项目篇-admin源码解析
1、单例模式单例模式(Singleton Pattern)是一种常用的软件设计模式,该模式的主要目的是确保某一个类只有一个实例存在。当你希望在整个系统中,某个类只能出现一个实例时,单例对象就能派上用场。比如,某个服务器程序的配置信息存放在一个文件中,客户端通过一个 AppConfig 的类来读取配置文件的信息。如果在程序运行期间,有很多地方都需要使用配置文件的内容,也就是说,很多地方都需要创建...原创 2019-02-20 19:45:31 · 677 阅读 · 0 评论 -
python项目-Django请求流程
原创 2019-02-19 15:40:50 · 547 阅读 · 0 评论 -
python项目篇-form组件应用并且与传统的增删改的区别
在view.py中from django.shortcuts import renderfrom django.shortcuts import render,redirect# Create your views here.from .models import *# Create your views here.'''传统模式的增删改def books(request):...原创 2019-02-19 14:54:14 · 214 阅读 · 0 评论 -
python项目篇-Xadmin组件注册设计二
1、Xadmin文件下service包中的Xadmin.py修改from django.conf.urls import urlfrom django.shortcuts import HttpResponse ,render ,redirectclass ModelXadmin(object): list_display = ["__str__"] def __init...原创 2019-02-15 16:58:06 · 334 阅读 · 0 评论 -
python项目篇-权限粒度控制、摆脱表控制
权限粒度控制简单控制: {% if "users/add" in permissions_list%}摆脱表控制更改数据库结构class Permission(models.Model): title=models.CharField(max_length=32) url=models.CharField(max_length=32) act...原创 2019-02-13 00:05:05 · 244 阅读 · 0 评论 -
python项目篇-权限组件
一个正则表达式URL就是一个权限UserInfor表namepwdtwiss123egon123gkate123irls123tomas123Role表idtitle1销售员2保CTO3CEOUserInfor2Role表iduser_idrole_id111...原创 2019-02-12 23:35:57 · 304 阅读 · 0 评论 -
python项目篇-Xadmin组件注册设计
1.startapp Xadminstartapp app022.在setting-INSTALLED_APPS里面添加’app02.apps.App02Config’,'Xadmin.apps.XadminConfig',3.在Xadmin文件里面找到apps.py,并修改from django.apps import AppConfigfrom django.utils.m...原创 2019-02-08 20:00:25 · 648 阅读 · 0 评论 -
python项目篇-admin配置
1 聚合与分组 # 统计不止一个作者的图书名称: select book.title,Count(author.name) as c from book inner join book-authors on ... inner join author on ... group by book.id having c>12 admin配置参数...原创 2019-02-02 21:36:31 · 924 阅读 · 0 评论 -
python项目篇-点赞功能原理
点赞或者评论者就是当前登录人1 绑定事件2 携带data={article_id,is_up}发送Ajax请求3 对应的视图函数要生成一个赞或者反对记录4 响应结果给ajax5 Ajax的success处理view.pyimport jsonfrom django.db.models import Fdef up_down(request): print(reques...原创 2019-01-30 19:41:40 · 2071 阅读 · 0 评论 -
python项目篇:ORM聚合与分组
1. 分组 ORM中values或者values_list 里面写什么字段,就相当于select 什么字段 ret = models.Employee.objects.all().values("dept", "age") 相当于: SELECT `employee`.`dept`, `employee`.`age` FROM `employee` LIMIT 21; arg...原创 2019-01-28 23:51:14 · 776 阅读 · 0 评论 -
python项目篇-对符合条件的某个字段进行求和,聚合函数annotate(),aggregate()函数
对符合条件的某个字段求和需求是,计算每日的收入和1、 new_dayincome = request.POST.get("dayincome_time", None) # total_income = models.bathAccount.objects.filter(dayBath=new_dayincome).aggregate(nums=Sum('priceBath'...原创 2019-01-02 23:17:51 · 10534 阅读 · 0 评论 -
python之项目篇-复习(HTTP协议,组件,视图中的继承等)
1. 你理解的Http协议? - 建立在tcp之上 - 一次请求一次响应然后断开连接(无状态、短连接) - 请求和响应 发送:请求头\r\n\r\n请求体 host:www.luffy.com\r\ncontent-type:application/json\r\n\r\n请求体 响应:响应头\r\n\r\n响应体 ... 2. djang...原创 2018-12-27 08:07:39 · 130 阅读 · 0 评论 -
python之项目篇-切片操作,迭代操作,惰性操作,缓存机制
1 切片操作 Book.objects.all()[0:8] 2 迭代操作 for obj in Book.objects.all(): print(obj.属性) 3 惰性查询 ret=Book.objects.all() # for i in ret: # print(i) ...原创 2018-12-26 08:07:06 · 241 阅读 · 0 评论 -
python项目篇-权限二
权限粒度控制 简单控制: {% if "users/add" in permissions_list%} 摆脱表控制 更改数据库结构 class Permission(models.Model): title=models.CharField(max_length=32) url=models.CharField(max_length=...原创 2018-12-26 08:06:54 · 249 阅读 · 0 评论 -
python之项目篇-权限
一个包含正则表达式url就是一个权限 who what how ---------->True or Flase UserInfor name pwd permission=models.manytomany(Permission) name pwd gkate ...原创 2018-12-26 08:06:43 · 592 阅读 · 1 评论 -
python项目篇-复习分组和聚合
1. 复习下分组和聚合 https://www.cnblogs.com/liwenzhou/p/8660826.html 1. 分组 ORM中values或者values_list 里面写什么字段,就相当于select 什么字段 ret = models.Employee.objects.all().values("dept", "age") 相当于: SELECT `...原创 2018-12-27 08:07:26 · 270 阅读 · 0 评论 -
python之项目篇-from组件梳理和站点主页
1. form组件梳理 注册功能: 1. 利用form组件生成HTML代码 2. 使用AJAX提交数据,并且在页面显示错误信息 3. 后端还是使用form做校验 额外补充: 滑动验证码 前端预览头像 2. 站点主页 - Django admin简单使用 1. 告诉admin 我有哪一些表 1. 在app/admin.py文件中,把表注册一下 2...原创 2018-12-26 08:06:18 · 197 阅读 · 0 评论 -
python项目篇-auth模块
1. auth模块的知识点: 1. 创建超级用户 python manage.py createsuperuser from django.contrib import auth 2. auth.authenticate(username=username, password=pwd) 验证用户名和密码 如果验证成功,得到的是一个用户对象 如果验证失败,得到的是匿...原创 2018-12-26 08:05:56 · 2636 阅读 · 0 评论