Visual StudioでDjango

Visual Studio Community 2019 で、Djangoで開発を始めたので、作業メモ。とりあえず、Microsoftのドキュメントからチュートリアルを参考に。

(MS公式)チュートリアル: Visual Studio での Django Web フレームワークの概要

チュートリアルは前の2017バージョンだけど参考に、軽く動かしながら、実際に作りたいものに変えていく。

【主な変更作業】

Webプロジェクト テンプレートから、自分用に変更していく。

(MSサイト)手順 4: Django Web プロジェクト テンプレートを使用する

1 Viewの変更

まずは見た目からということで、自分の作りたいページ構成に変えていく。

  • app/templates/layout.html:タイトル、メニュー、フッター等を修正
  • app/views.py:templateの中で表示するデータを修正

2 DB変更

DBを、業務で使っているPostgreSQLに変更する。使うドライバとしては、以下のPsycopgがよく使われているらしいので、それを使うことにする。

(Psycopg公式)Psycopg – PostgreSQL database adapter for Python

1)ドライバのインストール

psycopg2パッケージをインストールする。インストール方法は以下ページを参考に。

(MS公式)[Python 環境] ウィンドウ タブ リファレンス

ソリューションエクスプローラーの[Python環境]>[Env]を右クリックして[Pythonパッケージの管理]からも行ける。

2)DB接続の設定

以下ページを参考に、settings.pyのDATABAESを修正。

(django公式)djangoドキュメント – Settings -DATABASES

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.postgresql',
        'NAME': 'mydatabase',
        'USER': 'mydatabaseuser',
        'PASSWORD': 'mypassword',
        'HOST': '111.111.111.1111',
        'PORT': '', # 空白の場合はデフォルト
    }
}

3)既存の業務DBの定義を取り込む

以下を参考に、models.pyに既存DBの定義を追加する。

(Djangoi公式)レガシーなデータベースと Django の統合

ソリューションエクスプローラーから[Python環境] を右クリックして、[すべてのPython環境を表示]して、実行環境を選択して、下の[PowerShell で開く]。

PowerShellで、以下コマンドを実行。

$ python manage.py inspectdb

以下のエラーが出て、うまく定義を作成できないよう。

Unable to inspect table 'XXXXXXXXXX'
The error was: syntax error at or near "WITH ORDINALITY"
LINE 6: FROM unnest(c.conkey) WITH ORDINALITY co…

PostgreSQLがVer9.2と古くて対応していないので、いい機会なのでバージョンアップすることに。

PostreSQLをバージョン13にしたら、問題なくinspectdbができたので、models.pyに定義を追加する。

4)DBのマイグレーション

PostgreSQLにadmin関係のテーブルを作成する。Microsoftのドキュメントの手順をい参考に。

(MS公式)手順 6-1:プロジェクトを作成し、データベースを初期化する

ソリューションエクスプローラーで、プロジェクトを右クリックして、[Python]>[Django で移行を実行する]を行う。その後、[Django でスーパーユーザーを作成する]を実行。

3.setting.pyの修正

日本語設定等を行う。

(Django公式)設定 | Django ドキュメント

とりあえず、変えたところは以下。

LANGUAGE_CODE = 'ja'
TIME_ZONE = 'Asia/Tokyo'

【アプリ作成】

Django公式のチュートリアルを参考に、仕組みを勉強しながら作業。

4.Djangoのバージョンアップ

Visual Studio 2019 のプロジェクトテンプレートは、Django2.2なので、最新のDjango3.1に変更した。

プロジェクトフォルダ直下のrequirement.txtのバージョンを修正する。

django~=3.1

Python環境の実行環境(ディフォルトならenv)を選択して、[パッケージ(PyPI)]を選択して、表示されている「Django2.2.*」の横の上矢印でバージョンアップするか、プロジェクトを再読み込みすれば画面上部にメッセージが出るのでクリックしてバージョンアップ。

テンプレートファイルの、staticsfilesの読み込みが、エラーになるので、テンプレートファイルを修正する。

【旧】{% load staticfiles %}
↓
【新】{% load static %}

5.テストについて

https://docs.microsoft.com/ja-jp/visualstudio/python/unit-testing-python-in-visual-studio?view=vs-2019

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください