Help us understand the problem. What is going on with this article?

Djangoのサーバ起動をPycharmではなくVScode でやってみた件

introduction

最近、自己啓発のためにDjangoを始めて3日のよわよわエンジニアのまるん(仮)です。
ハンドルネーム募集中です('ω')
動かして学ぶ! Python Django開発入門を買って始めてみました。
書籍ではPycharmで開発やサーバの起動をやってて、最近VScode主体で開発をしてる自分としてはうーーーーんって感じでした。コードの修正は良いとして、サーバの起動も何とかVScodeで出来ないかなと。
そこで、12/18 に開催されたVScode Meetup で学んだデバッグ機能を使って実装してみました!
前置き長くなったので早速書いていきます。

環境

  • Windows10
  • Python:3.7
  • Django:2.2.2
  • VScode:1.4.1
  • 作業ディレクトリは右記とする:/Users/marun/test

1. Interpreter の設定

venv を使用して開発を行っていたので、settings.json を新規で作成し、venvのPython.exeを以下のように再設定。

/Users/marun/test/.vscode/settings.json
{
    "files.eol": "\n",
    "terminal.integrated.env.windows": {
        "PATH": "${workspaceFolder}/venv/Scripts;${env:PATH}"
    },
    // ${workspaceFolder}:C:Users/marun/test のことである。
    "python.pythonPath": "${workspaceFolder}/venv/Scripts/python.exe"
}

2. 環境変数の設定

WindowsでDjangoのサーバを起動するには環境変数が必要だったのですが、launch.jsonに.envファイルを読み込ませることが出来るようなのでそれを作成します。

/Users/marun/test/.vscode/.env
PYTHONUNBUFFERED=1
DB_USER="[ユーザ名]"
DB_PASSWORD="[パスワード]"

これは自分の場合の設定ですので、必要に応じて中身を書き換えてください。
macの場合は環境変数いらないぽい?

3. launch.json の作成

最後に、デバッグ機能の構成の元になるlaunch.json を作成していきます。

/Users/marun/test/.vscode/launch.json
{
    "version": "0.2.0",
    "configurations": [
        {
            "name": "Python: Django",
            "type": "python",
            "request": "launch",
            "program": "${workspaceFolder}/manage.py",
            "console": "integratedTerminal",
            "args": [
                "runserver",
                "--noreload"
            ],
            "envFile": "${workspaceFolder}/.vscode/.env",
            "django": true
        }
    ]
}

envFile を定義することにより、無事環境変数を読み込むことが出来ました。
これを作成すると、以下のようなボタンがデバッグモードのところに出てくると思います。

VScode1.png

4.実行

ボタンを押すと、ターミナルが動き出します。
エラーが出ず、以下のような出力があれば成功です!
実際に赤で囲ったURLを叩いて確認してみましょう!
VScode2.png

5.最後に

Qiitaで記事書くのも2回目とかですし、まだまだ勉強不足でつよつよエンジニアとはとてもじゃないが言えないですが、これからもこんなのあったらいいなと思うものを実装してアウトプットしていこうと思います。
同じような悩みを持った同胞がこの記事で救われますように。
また、もっとこうした方がいいよとか、これ間違ってるよ等のコメントお待ちしてます!
皆さんの知識を下さい!!

余談

動かして学ぶ! Python Django開発入門ですが、フルカラーだし、Django以外にも色々技術学べるしとても良書だと思いました(異論大歓迎です)。

余談の余談

ハンドルネームとかいい感じのアイコンってみんなどうやって探しているのだろう。。。

souta1003
バックエンドを中心にいろんな言語やツールをちょこちょこ触ってます。 DjangoとDocker勉強中。
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした