在用 Rails 開(kāi)發(fā) Web 應(yīng)用時(shí)亲怠,經(jīng)常需要調(diào)試某些類的 API,看一下輸出是什么柠辞。
比如執(zhí)行 view helper API:https://ruby-china.org/topics/3506
最近用 mongo 存爬取的數(shù)據(jù)团秽,但是對(duì) mongo 的 CRUD 操作不熟悉,經(jīng)常需要進(jìn)入 python 控制臺(tái)調(diào)試API。
每次都要敲入 $ python
习勤,然后實(shí)例化 mongo 對(duì)象踪栋,期間還要加載 .env
文件里的環(huán)境變量,過(guò)程實(shí)在麻煩图毕。所以想像 Rails 一樣夷都,搭建一個(gè)預(yù)設(shè)變量的控制臺(tái),提前創(chuàng)建出 mongo 對(duì)象予颤,方便自己調(diào)試囤官。
首先新建一個(gè)文件 console.py
,把下面代碼拷貝進(jìn)去
import code
import os
import pymongo
import dotenv
dotenv.load_dotenv() # 讀取環(huán)境變量
# 設(shè)置常用的變量
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()) # 進(jìn)入python控制臺(tái)荣瑟,并且傳入本地變量
然后在控制臺(tái)執(zhí)行治拿,就能訪問(wèn)提前設(shè)置好的變量啦
$ 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')
>>>
想起以前開(kāi)發(fā) Android App 時(shí),也沒(méi)有控制臺(tái)笆焰。調(diào)試一個(gè)涉及到頁(yè)面的幾個(gè) API劫谅,還得打包,安裝 App 到手機(jī)上(現(xiàn)在打包速度提升不少了)嚷掠,點(diǎn)一下按鈕或者進(jìn)入主頁(yè)面來(lái)觸發(fā)代碼捏检,這個(gè)開(kāi)發(fā)效率,一言難盡不皆,想哭贯城,哈哈