-
Notifications
You must be signed in to change notification settings - Fork 22
如何開始
linter,修改code style 下載:https://plugins.jetbrains.com/plugin/11084-pylint
裝好plugin後,在terminal安裝pylint
pip3 install pylint
打開pycharm的 prefrence > other setting > Pylint 修改 “Path to Pylint executable” 對應到pylint安裝的位置. 如果不知道裝在哪,可以輸入以下指令:
which pylint
例圖
formatter 修改排版
pip3 install 'black[d]'
下載:https://plugins.jetbrains.com/plugin/14321-blackconnect
裝好pluin後,pycharm 點開 prefrence > Tools > BlackConnect
打勾 “Start local blackd instance when plugin loads”
按一下 Detect 按鈕 ,plugin會找black放在哪裡
在 Trigger Settings 打勾 “Trigger on code reformat” 讓pycharm的code format功能使用black
現在就可以用Black修改Format了, 打開工具列的Code -> Reformat Code
如果想在每次修改檔案時都自動format,可以在 Trigger Settings 內打勾 “Trigger when saving changed files”
例圖
更改import module的排版
pip3 install isort
安裝File Watcher Plugin: https://plugins.jetbrains.com/plugin/7177-file-watchers
Pycharm 點開 Preferences -> Tools -> File Watchers ,點左上角的 + 新增 watcher
在對應欄位輸入下列值
Name -> isort
File Type -> Python
Scope -> Project Files
Program -> \$PyInterpreterDirectory\$/python
Arguments -> -m isort \$FilePath\$ --profile black
Output paths to refresh -> \$FilePath\$
Working directory -> \$ProjectFileDir\$
Advanced Options 區塊
Uncheck “Auto-save edited files to trigger the watcher”
Uncheck “Trigger the watcher on external changes”
例圖
- pylint 照上述設定後,pylint 會出現在 pycharm 下方,點開後可以自行決定要掃哪裡
也可以在 pycharm 的 inspection 中決定要不要開 pylint real-time scan,建議關閉或不要開通知
- isort isort部分則只要對單一檔案進行修改並存檔,就會自動幫你在import部分拉成三個block python 自帶lib -> 第三方lib -> 本地lib
- black black部分,打開工具列的code -> reformat code 即可
- https://stackoverflow.com/questions/38134086/how-to-run-pylint-with-pycharm/46409649#46409649
- https://github.com/pycqa/isort/wiki/isort-Plugins
- https://black.readthedocs.io/en/stable/integrations/editors.html
- 安裝Flask-Migrate
pip install Flask-Migrate
- 初始化migrations資料夾
flask --app repository/models.py db init
- 根據db.Model的結構產生對應的SQL語法
- 會在
migrations/versions/
底下創建一個.py檔案(如下圖的7dca07870a72_.py) - 也會在DB創建alembic_version表,用來記錄當前的version版本(7dca07870a72)
flask --app repository/models.py db migrate -m "init"
- 會在
- 更新到DB
- 觸發7dca07870a72_.py內的upgrade(),新增該table
- alembic_version表也會把該version記錄起來
flask --app repository/models.py db upgrade
- 後悔了(降版)
- 觸發7dca07870a72_.py內的downgrade(),刪除該table
flask --app repository/models.py db downgrade
- migrations/version底下已經有對應的版本了
flask --app repository/models.py db upgrade
- 一直migrate出不來可以用以下的方式試試看
flask --app repository/models.py db stamp head flask --app repository/models.py db migrate flask --app repository/models.py db upgrade