Python 开发利器,预设变量到 Python 控制台

hjiangwen · 2020年03月29日 · 最后由 lanzhiheng 回复于 2020年03月30日 · 3312 次阅读

原文地址: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 到手机上(现在打包速度提升不少了),点一下按钮或者进入主页面来触发代码,这个开发效率,一言难尽,想哭,哈哈

之前以为 ruby china 没有“相关话题”功能,然后在评论时发现了,就在评论区的最底部。

有点隐蔽,如果把它放在“点赞区”的下面,应该会显眼点😀

hjiangwen 回复

右边有点窄。

需要 登录 后方可回复, 如果你还没有账号请 注册新账号