原文地址:https://www.jianshu.com/p/884e0b2f5a45
在用 Rails 开发 Web 应用时,经常需要调试某些类的 API,看一下输出是什么。 比如执行 view helper API:https://ruby-china.org/topics/3506
最近用 mongo 存爬取的数据,但是对 mongo 的 CRUD 操作不熟悉,经常需要进入 python 控制台调试 API。
每次都要敲入 $ python
,然后实例化 mongo 对象,期间还要加载 .env
文件里的环境变量,过程实在麻烦。所以想像 Rails 一样,搭建一个预设变量的控制台,提前创建出 mongo 对象,方便自己调试。
首先新建一个文件 console.py
,把下面代码拷贝进去
import code
import os
import pymongo
import dotenv
dotenv.load_dotenv() # 读取环境变量
# 设置常用的变量
client = pymongo.MongoClient(os.getenv('MONGO_URI'))
db = client[os.getenv('MONGO_DATABASE')]
question_stats = db['question_stats']
answers = db['answers']
code.interact(local=locals()) # 进入python控制台,并且传入本地变量
然后在控制台执行,就能访问提前设置好的变量啦
$ python console.py
Python 3.7.4 (default, Aug 13 2019, 15:17:50)
[Clang 4.0.1 (tags/RELEASE_401/final)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
(InteractiveConsole)
>>> db
Database(MongoClient(host=['localhost:27017'], document_class=dict, tz_aware=False, connect=True), 'zhihu_spider')
>>>
想起以前开发 Android App 时,也没有控制台。调试一个涉及到页面的几个 API,还得打包,安装 App 到手机上(现在打包速度提升不少了),点一下按钮或者进入主页面来触发代码,这个开发效率,一言难尽,想哭,哈哈