---
# System prepended metadata

title: Emotion Diary Note

---

Emotion Diary Note
===
Django + LineBot

## 本機環境設定
- 安裝環境設定
![](https://i.imgur.com/lPOdga2.png)

- 在虛擬環境下操作，並安裝需要的套件
`EmotionDiary\venv\Scripts\activate.bat`
> 手動設定虛擬環境 `python -m venv <虛擬環境名稱>`

- 若要退出虛擬環境則是
`EmotionDiary\venv\Scripts\deactivate.bat`

    ![](https://i.imgur.com/AusHYxW.png)

- 在專案底下開始新創一個APP
`python manage.py startapp AI_analyze`

    ![](https://i.imgur.com/LqyXOL7.png)

- 將新增的 APP 名稱加入 setting.py 的 INSTALLED_APPS 中

    ![](https://i.imgur.com/tCWOh65.png)

- 安裝在 Django 中執行 LineBot 需要的套件
`pip install line-bot-sdk`

- 在 setting.py 中設定 LINE_CHANNEL_ACCESS_TOKEN 和 LINE_CHANNEL_SECRET
    ```python=
    LINE_CHANNEL_ACCESS_TOKEN = '你的 LINE Channel Access Token'
    LINE_CHANNEL_SECRET = '你的 LINE Channel Secret'
    ```
    ![](https://i.imgur.com/tEdTXT6.png)

- 設定語言/時區/static資料夾位址
    ```python=
    LANGUAGE_CODE = 'zh-hant'
    TIME_ZONE = 'Asia/Taipei'
    ----------------------------------------
    STATIC_URL = '/static/'
    STATICILES_DIRS = [
        os.path.join(BASE_DIR, 'static')
    ]
    ```
    ![](https://i.imgur.com/W7TYV2l.png)
    
- 資料庫遷移初始化及建立管理者帳號
    - `python manage.py makemigrations`
    - `python manage.py migrate`
    - `python manage.py createsuperuser`

- 將安裝檔打包
    - `pip freeze > requirements.txt`

## view.py
### LineBot 接收照片並儲存
```python=
def handle_text_message(event):
    if isinstance(event.message, ImageMessage):
        ext = 'jpg'
        print(event)

        # 接收照片
        message_content = line_bot_api.get_message_content(event.message.id)
        with open('static\\img\\pic.jpg', 'wb') as file:
            for chunk in message_content.iter_content():
                file.write(chunk)
```


## 待完成部分
### Django

- [ ]  新增日記 > 生日
- [ ]  性別判斷