LoginSignup
4
4

More than 5 years have passed since last update.

Djangoで利用するコマンドまとめ

Posted at

はじめに

普段、業務でDjangoを利用していて、コマンドを度々忘れてしまうので、
ここにメモしてコピペできるよう作りました。

環境

macOS Mojave 10.14
Python3.x.x
Django2.x

セットアップ編

Djangoインストール

作成するアプリケーションごとにライブラリ等合わせる必要があるので、
プロジェクトディレクトリにvirtualenv(venv)を作成

  • プロジェクトのディレクトリ作成(プロジェクトに)
mkdir python_project
cd python_project
  • venv作成
python3 -m venv myvenv
  • virtualenv起動
source myvenv/bin/activate
  • Djangをインストールする前にvenv環境をアップデート
(myvenv)~$ pip install --upgrade pip
  • Djangoインストール
(myvenv) ~$ pip install django==2.1

プロジェクト作成編

  • プロジェクト作成
(myvenv)~$ django-admin startproject sample_project .
  • 現状のファイル構造
python_project
├── manage.py
└── sample_project
    ├── __init__.py
    ├── settings.py
    ├── urls.py
    └── wsgi.py

app作成&実行編

  • アプリケーション作成(manage.pyが存在するディレクトリで実行)
(myvenv)~$ python manage.py startapp sample_app
  • DBに入れるための移行ファイルの作成とマイグレーション
(myvenv)~$ python manage.py makemigrations sample_app
(myvenv)~$ python manage.py migrate
  • サーバ起動
(myvenv)~$ python manage.py runserver

shell編

  • shell起動
(myvenv)~$ python manage.py shell
  • モデルインポート
>>> from sample_app.models import *
  • モデルデータ全取得
>>> 'モデル名'.objects.all()
  • DBにデータ投入(saveコマンドで投入データを保存)
>>> data = 'モデル名'('カラム名'='値', 'カラム名'='値',...)
>>> data.save()
  • 特定のオブジェクト取得
>>> data = 'モデル名'.objects.get('カラム名'='値')
>>> data.'カラム名'
'値'
  • 特定のオブジェクト削除
>>> data = 'モデル名'.objects.get('カラム名'='値')
>>> data.delete()

その他

  • 既存DBからテーブルのモデルを出力
(myvenv)~$ python manage.py inspectdb tablename 
  • モデルからER図作成

事前にインストール

(myvenv)~$ brew install Graphviz
(myvenv)~$ pip install pygraphviz
(myvenv)~$ pip install django-extensions

ER図作成(settings.pyでextensionsを有効化)

(myvenv)~$ python manage.py graph_models -a -o er.png

参考

4
4
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
4