django

参考資料

https://docs.djangoproject.com/ja/1.10/
https://github.com/Chive/django-poll-app

シンプルなもの

// プロジェクト作成
django-admin.py startproject mysite

// mysiteフォルダに移動
cd mysite

// アプリ作成
python manage.py startapp myapp

// サーバー起動 mysiteフォルダで実行
python manage.py runserver 0.0.0.0:8000

テキスト表示

mysite/urls.py

from django.conf.urls import include, url
from django.contrib import admin

urlpatterns = [
    url(r'^myapp/', include('myapp.urls')),
    url(r'^admin/', admin.site.urls),
]

myapp/views.py

from django.http import HttpResponse
def index(request):
    return HttpResponse('Hello')

myapp/urls.py

from django.conf.urls import url

from . import views

urlpatterns = [
    url(r'^$', views.index, name='index'),
]

モデル作成

ライブラリインストール

install -c https://conda.anaconda.org/anaconda mysql-connector-python

ライブラリ読み込み

manage.py

// 以下を追記
import pymysql
pymysql.install_as_MySQLdb()

db設定

mysite/settings.py

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.mysql',
        'NAME': 'mysite',
        'USER':'root',
        'HOST':'',
    }
}

db作成

事前にmysqlで作成しておく

モデルファイル作成

myapp/models.py

from django.db import models

# Create your models here.
class User(models.Model):
    name = models.CharField(max_length=200)

マイグレート

// マイグレートファイルが作成される(myapp/migrations)
python manage.py makemigrations

// マイグレート実行。テーブルが作成される。
python manage.py migrate

ターミナルからレコード作成

// ターミナル起動
python manage.py shell

// モデル読み込み
from myapp.models import User

// レコード作成
user.objects.create(name="hello")

// レコード取得
User.objects.all()[0].name

カラム名変更

モデルクラスを修正して、再度、マイグレーションファイルを作成してマイグレートするだけ
https://docs.djangoproject.com/en/1.10/ref/migration-operations/#renamefield