![](https://img-blog.csdnimg.cn/20201014180756916.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
web
文章平均质量分 77
小屋子大侠
这个作者很懒,什么都没留下…
展开
-
MVVM框架原理浅谈
MVVM基本原理MVVM(Model-View-ViewModel)本质上就是MVC 的改进版,MVVM 就是将其中的View 的状态和行为抽象化,让我们将视图 UI 和业务逻辑分开。数据修改通知ViewModel通知Model数据修改View数据修改通知ViewModelViewModel数据修改通知ViewModelViewModelViewMVVM相比与MVC模式主要是分离了试图和模型...原创 2020-01-07 15:38:54 · 6224 阅读 · 0 评论 -
celery源码分析:multi命令分析
celery源码分析本文环境python3.5.2,celery4.0.2,django1.10.x系列celery简介celery是一款异步任务框架,基于AMQP协议的任务调度框架。使用的场景与生产者消费者类似,生产者发送消息,发送到消息队列中,然后消费者通过消息队列获取消息然后消费掉,这样达到服务或应用(生产者)解耦。使用场景概述celery作为异步任务框架,不仅...原创 2018-07-07 10:25:55 · 4953 阅读 · 1 评论 -
flask源码学习-helloworld与本地启动流程
Flask源码分析本文环境python3.5.2,flask-1.0.2。Flask的初探首先,在项目文件夹下建立flask_run.py文件,然后写入如下,from flask import Flaskapp = Flask(__name__)@app.route('/')def hello_world(): return 'Hello, World...原创 2018-07-13 12:39:06 · 2227 阅读 · 0 评论 -
celery源码分析-定时任务
celery源码分析本文环境python3.5.2,celery4.0.2,django1.10.x系列celery的定时任务与Django配置celery也可以执行定时任务来执行相关操作,celery与django的配置方法如下, 1.在celery_app.tasks中添加如下任务@shared_taskdef beat_task(): print("beat...原创 2018-07-12 17:33:12 · 2191 阅读 · 0 评论 -
celery源码分析-Task的初始化与发送任务
celery源码分析本文环境python3.5.2,celery4.0.2,django1.10.x系列celery的任务发送在Django项目中使用了装饰器来包装待执行任务,from celery import shared_task, app@shared_taskdef add(x, y): return x + y@app.task(bind=Tr...原创 2018-07-08 18:00:27 · 5796 阅读 · 0 评论 -
celery源码分析-worker初始化分析(下)
celery源码分析本文环境python3.5.2,celery4.0.2,django1.10.x系列celery的worker启动在上文中分析到了Hub类的初始化,接下来继续分析Pool类的初始化,class Pool(bootsteps.StartStopStep): """Bootstep managing the worker pool. Desc...原创 2018-07-08 11:48:05 · 1466 阅读 · 4 评论 -
Django源码分析6:auth认证及登陆保持
django源码分析本文环境python3.5.2,django1.10.x系列1.这次分析django框架中登陆认证与接口权限检查。 2.在后端开发中,难免会对接口进行权限验证,其中对于接口是否登陆的验证是比较基础和重要的功能,有些与用户密切相关的接口必须要用户登陆后才能访问并获取数据,目前检查接口是否访问者登陆基本上都是利用会话保持来实现的。 3.大致浏览功能后我们分析一下Django框架原创 2018-02-25 11:51:34 · 1752 阅读 · 0 评论 -
Django源码分析4:staticfiles静态文件处理中间件分析
django源码分析本文环境python3.5.2,django1.10.x系列1.在上一篇文章中已经分析过handler的处理过程,其中load_middleware就是将配置的中间件进行初始化,然后调用相应的设置方法。django框架提供的认证,回话保持,静态文件调试处理等都是通过以中间件的形式来处理。2.本节就分析一下django框架提供的staticfiles中间件,该中间件分原创 2018-01-30 09:35:28 · 1340 阅读 · 0 评论 -
celery源码分析-wroker初始化分析(上)
celery源码分析本文环境python3.5.2,celery4.0.2,django1.10.x系列celery与Django的配合使用首先,在安装有django的环境中创建一个django项目,(venv) wuzideMacBook-Air:workpy wuzi$ django-admin startproject celery_django此时进入celer...原创 2018-07-07 17:02:13 · 2293 阅读 · 0 评论 -
flask源码学习-路由的注册与请求处理的过程
Flask源码分析本文环境python3.5.2,flask-1.0.2。Flask的路由注册此时编写的脚本内容如下,from flask import Flaskapp = Flask(__name__)@app.route('/')def hello_world(): return 'Hello, World!'继续分析一下app.route...原创 2018-07-14 11:59:05 · 1763 阅读 · 0 评论 -
Django项目日志概述
Django项目日志概述本文环境python3.5.2,Django版本1.10.2Django项目中日志的实现Django项目中使用的日志,使用了Python标准库中的logging模块进行实现的,先看下实例代码:在settings.py文件中添加如下配置LOGGING = { 'version': 1, 'disable_existing_loggers': Fal...原创 2018-12-17 10:18:16 · 1952 阅读 · 1 评论 -
djangorestframework源码分析2:serializer序列化数据的执行流程
djangorestframework源码分析本文环境python3.5.2,djangorestframework (3.5.1)系列djangorestframework源码分析-serializer的执行流程本次主要就是分析一下,djangorestframework中的序列化的工作的执行流程,主要是如果进行数据的序列化和返回的。本次示例代码就只展示了后端编写的代码和序列化过程,示例...原创 2018-10-13 08:22:57 · 1494 阅读 · 0 评论 -
djangorestframework源码分析1:generics中的view执行流程
djangorestframework源码分析本文环境python3.5.2,djangorestframework (3.5.1)系列djangorestframework源码分析-generics的执行流程在使用Django框架的同时,一般会使用djangorestframework第三方库对Django的处理做扩展,以便更易于开发。本文就分析restframework的ge...原创 2018-09-15 21:50:21 · 674 阅读 · 0 评论 -
Django源码分析10:makemigrations命令概述
django源码分析本文环境python3.5.2,django1.10.x系列django源码分析-makemigrations命令概述Django项目中的数据库管理命令就是通过makemigrations来实现的,通过调用该命令可以对Django中的app的model表进行改动后生成相关连的migrations文件,然后通过调用migrate命令执行migrations中对数...原创 2018-09-01 22:47:56 · 2573 阅读 · 1 评论 -
Django源码分析7:migrate命令的浅析
django源码分析本文环境python3.5.2,django1.10.x系列django源码分析-migrate命令分析Django项目中提供了,通过migrations操作数据库的结构的命令-migrate,该命令可以将生成的migrations直接映射到数据库中,对相关数据库和表结构进行相关的修改,并且在本地调用runserver调试运行的时候,都会进行migration...原创 2018-08-25 23:20:59 · 2336 阅读 · 0 评论 -
Django源码分析9:model.py表结构的初始化概述
django源码分析本文环境python3.5.2,django1.10.x系列django源码分析-model概述Django项目中提供了内置的orm框架,只需要在models.py文件中添加相关的表结构和指定的字段,就可以很方便的通过Django的orm查询从数据库中查找到相关结果,并映射到models.py中定义的类上的属性值,本文就简单概述一下,Django中的model...原创 2018-09-01 17:46:07 · 1974 阅读 · 2 评论 -
Django源码分析8:单元测试test命令浅析
django源码分析本文环境python3.5.2,django1.10.x系列django源码分析-test命令分析Django项目中提供了,test命令行命令来执行django的单元测试,该测试用例就是测试自己编写的api测试,用来测试自己编写的代码是否正确,当我们修改旧的代码时,通过运行测试来确保不会影响到旧的逻辑,单元测试是Django项目中很重要的一部分。本文按照mys...原创 2018-08-27 17:29:41 · 2153 阅读 · 0 评论 -
gevent源码初探-wsgi例子解析
gevent源码分析本文环境gevent-0.9.0。gevent简介gevent是Python的一个并发框架,以协程库greenlet为基础,基于libev的高性能IO复用机制,其中可以使用monkey是程序中运行的IO阻塞操作转化为gevent中对应的非阻塞操作,从而在减少对程序代码的侵入性的情况下,达到搞性能的处理。gevent示例由于gevent底层是基于gr...原创 2018-07-21 13:26:23 · 1257 阅读 · 0 评论 -
tornado源码分析
tornado源码分析本源码为tornado1.0版本源码附带例子helloworldimport tornado.httpserverimport tornado.ioloopimport tornado.optionsimport tornado.webfrom tornado.options import define, optionsdefine("port", default=888原创 2017-11-10 09:30:02 · 1422 阅读 · 0 评论 -
Django源码分析5:session会话中间件分析
django源码分析本文环境python3.5.2,django1.10.x系列1.这次分析django框架中的会话中间件。 2.会话保持是目前框架都支持的一个功能,因为http是无状态协议,无法直接报错请求过程中的数据,会话保持就是要实现会话数据保存的功能,实现数据在服务端的保存,目前会话的实现的主要途径就是通过cookie来进行会话的保持。 3.大致浏览功能后我们分析一下Django框架中原创 2018-01-31 09:28:17 · 1199 阅读 · 0 评论 -
python下使用epoll
因为最近想学习如何用epoll写服务器, 于是找到了一篇介绍的文章. 因为我最近一直看不进技术文章, 于是打算通过翻译来强迫自己学习. 原文在这里:http://scotdoyle.com/python-epoll-howto.html文章里面的代码下载地址:http://scotdoyle.com/python-epoll-examples.tar.gz转载 2017-03-22 18:14:30 · 374 阅读 · 0 评论 -
如何优雅地退出python程序
如何优雅地退出python程序一个单模的Python程序,启动之后要能够优雅地关闭。即当用户按Ctrl+C或者kill pid的时候,程序都能从容关闭。实现起来非常简单。[python] view plain copy print?is_running = True def onSigChld(signo,转载 2017-03-28 18:17:44 · 2067 阅读 · 0 评论 -
python字符串
#! /usr/bin/env python# -*- coding: utf-8 -*-# 模仿你从网页获得的数据data = "学分:1.5".decode("utf-8").encode('gb2312')# data = u"学分:1.5".encode('gb2312')print type(data)body = data.decode('gb2312')print转载 2017-03-28 18:17:03 · 179 阅读 · 0 评论 -
python 示列:抓取网页所有<a>连接
如果我们编写一个搜索引擎,第一步是用爬虫把目标网站的页面抓回来,第二步是分析网页内容,看到底是新闻、图片或是视频。接下来的示例展示分为2个步骤1.获取目标网页的内容2.屏幕输出网页中所有的标签的连接示列:myparser.py 1 #!/usr/bin/env Python 2 #-*- encoding:utf-8 -*- 3 4 imp转载 2017-03-28 18:15:47 · 478 阅读 · 0 评论 -
HTMLParser的初步学习
Python的自带模块——HTMLParser的初步学习HTMLParser是Python自带的模块,使用简单,能够很容易的实现HTML文件的分析。本文主要简单讲一下HTMLParser的用法.使用时需要定义一个从模块html.parser中的类HTMLParser继承的类,重定义函数:handle_starttag( tag, attrs)handle_sta转载 2017-03-28 18:15:03 · 284 阅读 · 0 评论 -
每天进步一点点——五分钟理解一致性哈希算法(consistent hashing)
转载请说明出处:http://blog.csdn.net/cywosp/article/details/23397179 一致性哈希算法在1997年由麻省理工学院提出的一种分布式哈希(DHT)实现算法,设计目标是为了解决因特网中的热点(Hot spot)问题,初衷和CARP十分类似。一致性哈希修正了CARP使用的简 单哈希算法带来的问题,使得分布式哈希(DHT)可以在P2P环境中真正得到转载 2017-03-21 08:23:34 · 206 阅读 · 0 评论 -
Tornado自定义分布式session框架
Tornado自定义分布式session框架 一、session框架处理请求执行的流程:1、服务器端生成随机的cookie字符串2、浏览器发送请求,服务器将cookie返回给浏览器。3、服务器在生成一个字典。字典的key为cookie,value为另一个小字典。小字典就是为用户设置的字典4、用户再次访问时,发送cookie到服务器端。服务器端收到cookie转载 2017-03-20 10:41:21 · 431 阅读 · 0 评论 -
如何设置一个严格30分钟过期的Session
今天在我的微博(Laruence)上发出一个问题:我在面试的时候, 经常会问一个问题: “如何设置一个30分钟过期的Session?”, 大家不要觉得看似简单, 这里面包含的知识挺多, 特别适合考察基本功是否扎实, 谁来回答试试? 呵呵为什么问这个问题呢? 1. 我在Twitter上看到了有人讨论这个问题, 2 想起来我经常问这个问题, 所以~~在这里, 我来解答下这个题目转载 2017-03-20 10:14:21 · 243 阅读 · 0 评论 -
TCP连接复用
TCP连接复用技术通过将前端多个客户的HTTP请求复用到后端与服务器建立的一个TCP连接上。这种技术能够大大减小服务器的性能负载,减少与服务器之间新建TCP连接所带来的延时,并最大限度的降低客户端对后端服务器的并发连接数请求,减少服务器的资源占用。 一般情况下,客户端在发送HTTP请求之前需要先与服务器进行TCP三次握手,建立TCP连接,然后发送HTTP请求。服务器收到HTTP请求后转载 2017-03-25 17:42:37 · 653 阅读 · 0 评论 -
pythonIO复用epoll
#coding:utf-8import socket, selectimport timeEOL1 = b'\n\n'EOL2 = b'\n\r\n'response = b'HTTP/1.0 200 OK\r\nDate: Mon, 1 Jan 1996 01:01:01 GMT\r\n'response += b'Content-Type: text/plain\原创 2017-03-25 18:08:10 · 348 阅读 · 0 评论 -
Django源码分析3:处理请求wsgi分析与视图View
django源码分析本文环境python3.5.2,django1.10.x系列根据前上一篇runserver的博文,已经分析了本地调试服务器的大致流程,现在我们来分析一下当runserver运行起来后,django框架是如何处理一个请求的,django框架是遵循了wsgi标准,所以django的项目可以和gunicorn等wsgi服务器配合使用,此处我们就主要分析一下django的wsgi流程分原创 2017-12-23 13:44:46 · 2757 阅读 · 0 评论 -
Django源码分析2:本地运行runserver分析
django源码分析本文环境python3.5.2,django1.10.x系列1.根据上一篇文章分析了,django-admin startproject与startapp的分析流程后,根据django的官方实例此时编写好了基本的路由和相应的处理函数,此时需要调试我们写的接口此时本地调试,django框架提供了python manage.py runserver 命令来本地调试。2.runser原创 2017-12-22 15:29:27 · 1839 阅读 · 2 评论 -
Django源码分析1:创建项目和应用分析
django命令行源码分析本文环境python3.5.2,django1.10.x系列当命令行输入时django-admin时(venv) ACA80166:dbManger wuzi$ django-adminType 'django-admin help <subcommand>' for help on a specific subcommand.Available subcommands原创 2017-12-21 11:54:31 · 2076 阅读 · 1 评论 -
异步爬虫框架与协程浅析
异步爬虫框架与协程浅析经典原文使用协成完成异步爬虫原文链接根据分享原文链接。Python基于协程的实现,其实是利用了Python生成器的特性完成的,Python生成器的原理其实涉及到用户态绿色线程的实现,用户态绿色线程是指通过在用户态实现函数之间执行的跳转,正常的函数调用在底层执行时会创建堆栈,将函数执行的数据进行压栈,保存函数运行时的数据,在函数执行完成后,函数运行后的数据会被丢弃,不会保存,实现原创 2017-11-21 22:44:21 · 776 阅读 · 0 评论 -
服务端异步IO配合协程浅析
服务端异步IO配合协程浅析代码如下#coding:utf-8import socketfrom selectors import DefaultSelector, EVENT_READ, EVENT_WRITEselector = DefaultSelector()stopped = Falseresponse = b'HTTP/1.0 200 OK\r\nDate: Mon, 1 Jan 1原创 2017-11-22 09:29:19 · 317 阅读 · 0 评论 -
amqp协议与pika库浅析
AMQP协议简介高级消息队列协议使得遵从该规范的客户端应用和消息中间件服务器的全功能互操作成为可能。 为了完全实现消息中间件的互操作性,需要充分定义网络协议和消息代理服务的功能语义。 一套确定的消息交换功能,也就是“高级消息交换协议模型”。AMQP模型包括一套用于路由和存储消息的功能模块,以及一套在这些模块之间交换消息的规则。 一个网络线级协议(数据传输格式),客户端应用可以通过这个协议与消息原创 2017-11-18 12:16:06 · 1264 阅读 · 0 评论 -
supervisor源码分析
Supervisor分析1.运行原理概述:Supervisor生成主进程并将主进程变成守护进程,supervisor依次生成配置文件中的工作进程,然后依次监控工作进程的工作状态,并且主进程负责与supervisorctl客户端通信,实现主进程对子进程的控制。 2.本次分析只分析supervisor的最小实现原理部分1).supervisor生成主进程并成为守护进程,根据配置依次生成子进程 2).原创 2017-10-28 13:00:50 · 3680 阅读 · 1 评论 -
gunicorn源码分析
服务器端编程(linux epoll模型)#!/usr/bin/env python #-*- coding:utf-8 -*- import socket import select import Queue #创建socket对象 serversocket = socket.socket(socket.AF_INET, socket.SOCK_STREAM) #设置IP地址复用 se原创 2017-11-03 08:39:01 · 3683 阅读 · 1 评论 -
不同浏览器Cookie有效期问题
公司网站服务器是Linux的,服务器端的时间延迟了很多接近两小时,结果设置cookie过期时间为一小时后谷歌和IE浏览器都登录不了(登录判断cookie),只有firefox可以登录,时间调整后就正常了。找到下面这边文章去检查了下服务器时间,果然。。转载:http://www.yzzmf.com/html/qianduankaifa/jsjq/2011-12-21/2311.htm转载 2017-03-20 10:02:17 · 1207 阅读 · 0 评论