摘要:
项目中通过配置环境变量区分生产、开发、测试环境,代码如下: WSGI_ENV = os.environ.get("DJANGO_CONF_MODULE", "") RUN_MODE = 'DEVELOP' if WSGI_ENV.endswith("production"): RUN_MODE = 阅读全文
摘要:
多进程 由于GIL(全局解释锁)的问题,多线程并不能充分利用多核处理器,如果是一个CPU计算型的任务,应该使用多进程模块 multiprocessing 。它的工作方式与线程库完全不同,但是两种库的语法和接口却非常相似。multiprocessing给每个进程赋予单独的Python解释器,这样就规避 阅读全文
摘要:
线程间通信 1.Queue 使用线程队列有一个要注意的问题是,向队列中添加数据项时并不会复制此数据项,线程间通信实际上是在线程间传递对象引用。如果你担心对象的共享状态,那你最好只传递不可修改的数据结构(如:整型、字符串或者元组)或者一个对象的深拷贝。 Queue 对象提供一些在当前上下文很有用的附加 阅读全文
摘要:
nginx安装 1.使用yum安装 2.配置开机启动 在/etc/init.d/目录下创建 nginx 文件 拷贝以下内容 设置/etc/init.d/nginx 执行权限 设置开机默认启动 nginx控制命令 在/etc/nginx/nginx.conf 主配置文件的http块中加入 3.ngin 阅读全文
摘要:
在Django中使用基于类的视图(ClassView),类中所定义的方法名称与Http的请求方法相对应,才能基于路由将请求分发(dispatch)到ClassView中的方法进行处理,而Django REST framework中可以突破这一点,通过ViewSets可以实现自定义路由。 创建一个Vi 阅读全文
摘要:
location匹配的是nginx的哪个变量? $request_uri location的匹配种类有哪些? 格式 location [ 空格 | = | ~ | ~ | !~ | !~ ] /uri/ {} 精确匹配: 相等(=) 字符串匹配: 字符串匹配(空格) 匹配开头(^~) 正则匹配: 区 阅读全文
摘要:
Python在运行环境初始化中,就将sys module加载到了内存中, 实际上,Python是将一大批的module加载到了内存中。但是为了使local名字空间能够达到最干净的效果,Python并没有将这些符号暴露在当前的local名字空间中, 而是需要用户显式的通过import机制通知Pytho 阅读全文
摘要:
前面几个 Sections 介绍了关于 Django 请求(Request)处理的流程分析,我们也了解到,Django 是围绕着 Request 与 Response 进行处理,也就是无外乎“求”与“应”。 当请求一个页面时,Django 把请求的 metadata 数据包装成一个 HttpRequ 阅读全文
摘要:
Django 处理一个 Request 的过程是首先通过中间件,然后再通过默认的 URL 方式进行的。我们可以在 Middleware 这个地方把所有Request 拦截住,用我们自己的方式完成处理以后直接返回 Response。因此了解中间件的构成是非常必要的。 Initializer: __init__(self) 出于性能的考虑,每个已启用的中间件在每个服务器进程中只初始化一次。也就是说 ... 阅读全文
摘要:
进入 View 了 如果处理过程这时候还在继续的话,处理器会调用 view function。Django 中的 Views 不很严格因为它只需要满足几个条件: 必须可以被调用。 必须接受 django.http.HttpRequest 的实例作为第一位置参数。 必须能产生一个异常或返回 djang 阅读全文