Pythonのdjangoについて

Python

今回はdjangoの基本知識を紹介します。

djangoインストール

diangoインストールはpythonの仮想環境に実行する。

pip install django==1.11.11

プロジェクトの作成

$ work 環境名
$ cd /home/
$ django-admin startproject testmanager
※testmanageはプロジェクト名。

作成したファイル一覧

testmanager
 __init__.py       
 settings.py        →設定関連
 urls.py          →ルート関連
 wsgi.py        →入口
manage.py       →管理ツール

実行

python manage.py runserver
または
python manage.py runserver 192.168.1.108:8089

アプリの作成

python manage.py startapp アプリ名

setting.pyにアプリ追加

INSTALLED_APPS = [
‘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の定義

# -*- coding: utf-8 -*-
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)

マイグレーション

python manage.py makemigrations
マイグレーションファイルを作成
python manage.py migrate (マイグレーションID)
マイグレーションファイルをデータベースに適用

DB接続設定

setting.pyの以下の変数に設定できる。

DATABASES = {
‘default’: {
‘ENGINE’: ‘django.db.backends.sqlite3’,
‘NAME’: os.path.join(BASE_DIR, ‘db.sqlite3’),
}
}

viewの作成

関数

from __future__ import unicode_literals
from django.http import HttpRequest,HttpResponse

from django.shortcuts import render

# Create your views here.
def index(request):
  return new HttpResponse(‘index’)

クラス

urlpatterns = [
    re_path(r’index/\d/\d’, BookView.as_view())
]
 
from django.views import View
class BookView(View):
    def get(self, request):
        return HttpResponse(‘get’)
    def post(self, request):
        return HttpResponse(‘post’)

ルートの作成

プロジェクト名/urls.pyに子アプリのルートを定義し、子アプリのフォルダにurls.pyを追加し、ルートを子アプリのurls.pyに追加します。

vi bookmanger/urls.py

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

urlpatterns = [
   url(r’^admin/’, admin.site.urls),
   url(r’^book/’, include(‘book.urls’))
]

vi book/urls.py

from django.conf.urls import url
from book.views import index

urlpatterns = [
   url(r’index/’, index),
]

テンプレート

テンプレートhtmlを保存するディレクトリを作成し、設定ファイルに作成したディレクトリを指定する

mkdir template
vi bookmanger/settings.py

TEMPLATES = [
{
‘BACKEND’: ‘django.template.backends.django.DjangoTemplates’,
‘DIRS’: [os.path.join(BASE_DIR, ‘template’)],
‘APP_DIRS’: True,
},
]

templateディレクトリにhtmlを作成する

<html>
<body>
<a>hello world</a>
<body>
</html>

view編集する

from django.shortcuts import render
from django.http import HttpResponse


# Create your views here.
def index(request):
 return render(request, ‘index.html’)

静的ファイル

静的ファイル(image,css)を保存するディレクトリを作成し、設定ファイルに作成したディレクトリを指定する

mkdir static
vi bookmanger/settings.py

STATIC_URL = ‘/static/’  # URLにアクセスするパス
#以下の内容を追加する
STATICFILES_DIRS = [
    os.path.join(BASE_DIR,’static’)
]
タイトルとURLをコピーしました