博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
在 django 项目之外使用 django 项目的配置 settings 信息
阅读量:6615 次
发布时间:2019-06-24

本文共 1863 字,大约阅读时间需要 6 分钟。

简介

最近在工作中使用 Djangodjango-rest-framework 来实现 API 开发功能,其中使用到 kafka 作为broker。

实现功能如下:

  1. POST 方法将数据发送到服务器,通过kafka写入指定的 topic

  2. 后台单独启动进程产生 消费者broker 的数据写入到 MySQL

此处的进程使用一个单独的 python 文件实现,此时需要配置中使用 django orm 的配置信息,包括一些其他的配置信息。

方法一

其实这些信息也可以使用包含上下文信息的工具:

python manage.py shell

此处特别推荐神器 ipython 安装如下:

pip install ipython

如果在这个交互环境中,可以享用一切 django 的配置,我一般常用于测试 djangomodel

凡是都有个但是,但是我们还有 方法二。(都看到这里了,就忍忍看完)

方法二

方法一 中很方便,但是使用起来只能在指定的交互环境中使用,不够灵活。

【我想要实现的是】:我在任意位置的代码、脚本中都可以很爽的使用 django 的配置

代码如下:

import os,threadingimport sysBASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))sys.path.extend([BASE_DIR,])os.environ.setdefault("DJANGO_SETTINGS_MODULE", "jrjidfa.settings")import djangodjango.setup()from idfacollect.kafka_utils import Utils as kfkfrom idfacollect.kafka_utils import Config as cfgclass Consumer(threading.Thread):    def run(self):        kfk.consume_to_mysql(host=cfg.KFK_HOST,                             port=cfg.KFK_PORT,                             topic=cfg.KFK_TOPIC_IDFA_DEVICE_STARTUP,                             group_id=cfg.KFK_GP_TO_MYSQL)        kfk.consume_to_mysql(host=cfg.KFK_HOST,                             port=cfg.KFK_PORT,                             topic=cfg.KFK_TOPIC_IDFA_APP_CLICK,                             group_id=cfg.KFK_GP_TO_MYSQL)if __name__ == '__main__':    try:        for i in range(5): # create 5 thread  exectue Consumer            t = Consumer()            t.start()    except Exception as e:        print e

说明一下:

BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))# 这个是想要使用的 `django` 工程的根目录;sys.path.extend([BASE_DIR,])# 将项目根目录加入到 python 搜索的 path 中os.environ.setdefault("DJANGO_SETTINGS_MODULE", "jrjidfa.settings")# 设置环境变量中的 DJANGO_SETTINGS_MODULE 设置为 django 配置import djangodjango.setup()# 启动 django 配置、注册 app 等等初始化操作

总结:接下来就可以愉快的使用了,看上面代码就知道真的很愉快。

以上です!ありがとうございました

转载地址:http://meeso.baihongyu.com/

你可能感兴趣的文章
Mysql学习第三课-分析二进制日志进行增量备份和还原
查看>>
HDU 6073 - Matching In Multiplication | 2017 Multi-University Training Contest 4
查看>>
如何检测域名是否被微信屏蔽 微信域名检测接口API是如何实现
查看>>
POJ1611-The Suspects
查看>>
Linux下安装Python-3.3.2【转】
查看>>
LeetCode OJ:Merge Two Sorted Lists(合并两个链表)
查看>>
功能测试
查看>>
【BZOJ 1901】Dynamic Rankings
查看>>
Github-Client(ANDROID)开源之旅(二) ------ 浅析ActionBarSherkLock
查看>>
React-Native 之 GD (十六)首页筛选功能
查看>>
SSISDB5:使用TSQL脚本执行Package
查看>>
asp.net后台进程做定时任务
查看>>
给vs2012换肤
查看>>
java接口中多继承的问题
查看>>
索引笔记《二》确定需要建立索引的列
查看>>
libjpeg的问题
查看>>
Ubuntu+Apache+PHP+Mysql环境搭建(完整版)
查看>>
深度学习笔记之CNN(卷积神经网络)基础
查看>>
嵌入式 详解udev
查看>>
云安全:这也是需要花大钱去建设的部分
查看>>