今回はdjangoの基本知識を紹介します。
djangoインストール
diangoインストールはpythonの仮想環境に実行する。
プロジェクトの作成
$ cd /home/
$ django-admin startproject testmanager
※testmanageはプロジェクト名。
作成したファイル一覧
__init__.py
settings.py →設定関連
urls.py →ルート関連
wsgi.py →入口
manage.py →管理ツール
実行
または
python manage.py runserver 192.168.1.108:8089
アプリの作成
setting.pyにアプリ追加
‘django.contrib.admin’,
‘django.contrib.auth’,
‘django.contrib.contenttypes’,
‘django.contrib.sessions’,
‘django.contrib.messages’,
‘django.contrib.staticfiles’,
‘app名.apps.app名Config’, # 追加部分
‘app名’ # または 追加部分
]
Modelの作成
Modelの定義
from __future__ import unicode_literals
from django.db import models
# Create your models here.
class BookInfo(models.Model):
name=models.CharField(max_lenght=10)
class PeopleInfo(models.Model):
name=models.CharField(max_length=10)
gender=models.BooleanField()
book=models.ForeignKey(BookInfo)
マイグレーション
マイグレーションファイルを作成
マイグレーションファイルをデータベースに適用
DB接続設定
setting.pyの以下の変数に設定できる。
‘default’: {
‘ENGINE’: ‘django.db.backends.sqlite3’,
‘NAME’: os.path.join(BASE_DIR, ‘db.sqlite3’),
}
}
viewの作成
関数
from django.http import HttpRequest,HttpResponse
from django.shortcuts import render
# Create your views here.
def index(request):
return new HttpResponse(‘index’)
クラス
ルートの作成
プロジェクト名/urls.pyに子アプリのルートを定義し、子アプリのフォルダにurls.pyを追加し、ルートを子アプリのurls.pyに追加します。
vi bookmanger/urls.py
from django.contrib import admin
urlpatterns = [
url(r’^admin/’, admin.site.urls),
url(r’^book/’, include(‘book.urls’))
]
vi book/urls.py
from book.views import index
urlpatterns = [
url(r’index/’, index),
]
テンプレート
テンプレートhtmlを保存するディレクトリを作成し、設定ファイルに作成したディレクトリを指定する
vi bookmanger/settings.py
TEMPLATES = [
{
‘BACKEND’: ‘django.template.backends.django.DjangoTemplates’,
‘DIRS’: [os.path.join(BASE_DIR, ‘template’)],
‘APP_DIRS’: True,
},
]
templateディレクトリにhtmlを作成する
<body>
<a>hello world</a>
<body>
</html>
view編集する
from django.http import HttpResponse
# Create your views here.
def index(request):
return render(request, ‘index.html’)
静的ファイル
静的ファイル(image,css)を保存するディレクトリを作成し、設定ファイルに作成したディレクトリを指定する
vi bookmanger/settings.py
STATIC_URL = ‘/static/’ # URLにアクセスするパス
#以下の内容を追加する
STATICFILES_DIRS = [
os.path.join(BASE_DIR,’static’)
]