討論過程:https://miro.com/app/board/uXjVPoRiOXE=/
.
├── alembic # database migration
│ ├── env.py
│ ├── README
│ ├── script.py.mako
│ └── versions # migration version
├── alembic.ini_sample # database migration config
├── application # usercase
├── domain # domain entity
├── interface # interface adapter
│ ├── api # 處理http request
│ ├── repository # 處理資料庫溝通
├── config # config
│ └── sample_api_config.py
├── docker # docker mysql redis config
├── docker-compose.yaml # docker-compose config
├── Dockerfile
├── logs # log
├── mainapp.py # Flask app entry point
├── tests # test
├── pyproject.toml
├── README.md
├── requirements.txt
├── scripts
├── setup.cfg
├── setup.py
├── start-dev.py
└── poetry.lock
3.10
在 project 目錄下執行下面的 command 安裝參考
安裝完成Poetry後,執行下面的指令修改設定檔
.venv
。
poetry config virtualenvs.in-project true
git clone https://github.com/Game-as-a-Service/splendor.git
poetry shell # 啟用虛擬環境,若沒有虛擬環境自動幫你建立並使用
poetry install # 依poetry.lock記載的套件版本安裝到虛擬環境中,類似npm install \
開發過程需要安裝套件
poetry add xxx # 安裝套件至全部環境
poetry add --group dev xxx # 只在開發環境安裝套件
poetry remove xxx # 移除套件
複製 config/sample_api_config.py
到 config/api_config.py
,接著修改 config/api_config.py
配置內容,目前無需修改
cp config/sample_api_config.py config/api_config.py
複製 alembic.ini_sample
到 alembic.ini
並把55行的改成sqlalchemy.url = mysql+pymysql://root:secret@127.0.0.1:3306/splendor
cp alembic.ini_sample alembic.ini
若需要起 Local docker server
在 project 目錄下執行
docker-compose down && docker-compose up -d
確認 docker container 是否正常運作,執行下面的指令,需看到 mysql
與 redis
的 container
docker ps
進入 mysql container
docker exec -it mysql8 mysql -psecret
# 退出
exit
alembic upgrade heads # 進版
alembic upgrade heads # 進版 往前到最新版本
alembic downgrade base # 回版 往後到最舊版本
alembic revision -m "message" # 產生migration檔案
export FLASK_APP=mainapp.py
flask run
mkdir .vscode
touch .vscode/launch.json
把以下參數丟入launch.json
{
"version": "0.2.0",
"configurations": [
{
"name": "Python: Flask",
"type": "python",
"request": "launch",
"module": "flask",
"env": {
"FLASK_APP": "mainapp.py",
"FLASK_ENV": "development"
},
"args": [
"run",
"--no-debugger",
"--no-reload"
],
"jinja": true
}
]
}
按下F5即可啟動
127.0.0.1:5000
127.0.0.1:5000/open-api-spec
git checkout -b feature/xxx
git add .
git commit -m "xxx"
git push origin feature/xxx