PythonのWebアプリケーションフレームワーク”Django”について無料で学習します。
在庫管理アプリを作るよ!
準備
参考.Djang
※仮想環境”venv”にて進めます。
環境
環境 | version | 備考(コマンド) |
Rocky Linux | 8.4 | cat /etc/redhat-release |
Python | 3.6.8 | python -V |
Django | 3.2 | django-admin –version |
プロジェクト生成
django-admin startproject orderPro
アプリケーション生成
python manage.py startapp orderApp
urls
プロジェクトのurlsを編集します。
プロジェクトのurlsからアプリケーションのurlsを参照する!
orderPro/orderPro/urls.py
from django.contrib import admin
from django.urls import path
# include
from django.urls import include
urlpatterns = [
path('admin/', admin.site.urls),
# order
path('orderApp/', include('orderApp.urls')),
]
orderPro/orderApp/urls.py
from django.urls import path
# view.pyをインポート
from . import views
# path(呼び出しアドレス, viewの呼び出す関数, path名)
urlpatterns = [
path('test', views.index, name='test'),
]
セッティング
ホストは28行を編集
orderPro/orderPro/settings.py
ALLOWED_HOSTS = ['*']
INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
# orderApp
'orderApp',
]
from pathlib import Path
import os
# Build paths inside the project like this: BASE_DIR / 'subdir'.
BASE_DIR = Path(__file__).resolve().parent.parent
# template
TEMPLATE_DIR = os.path.join(BASE_DIR,"Template")
# static
STATIC_DIR = os.path.join(BASE_DIR,"static")
TEMPLATES = [
{
'BACKEND': 'django.template.backends.django.DjangoTemplates',
'DIRS': [TEMPLATE_DIR],
'APP_DIRS': True,
'OPTIONS': {
'context_processors': [
'django.template.context_processors.debug',
'django.template.context_processors.request',
'django.contrib.auth.context_processors.auth',
'django.contrib.messages.context_processors.messages',
],
},
},
]
STATIC_URL = '/static/'
STATICFILES_DIRS = [
STATIC_DIR,
]
全体構成
★は作成する事
orderPro
|-- Template★
| `-- AppHTML
|-- manage.py
|-- orderApp
| |-- __init__.py
| |-- admin.py
| |-- apps.py
| |-- migrations
| | `-- __init__.py
| |-- models.py
| |-- tests.py
| `-- views.py
|-- orderPro
| |-- __init__.py
| |-- __pycache__
| | |-- __init__.cpython-36.pyc
| | `-- settings.cpython-36.pyc
| |-- asgi.py
| |-- settings.py
| |-- urls.py
| `-- wsgi.py
`-- static★
|-- AppCss
`-- images
テスト環境
テストテンプレート
orderPro/Template/AppHTML/test.html
<!DOCTYPE html>
{% load static %}
<html lang="ja" dir="ltr">
<head>
<meta charset="utf-8">
<title>Django Page</title>
<link rel="stylesheet" href='{% static "App_css/style.css" %}'/>
</head>
<body>
<h1> Hello World</h1>
<p> テンプレートテスト</p>
<p> {{message_me}}</p>
</body>
</html>
アプリケーションのurls
orderPro/orderApp/urls.py
from django.shortcuts import render
# Create your views here.
from django.http import HttpResponse
def test(request):
params = {"message_me" : "Hello World"}
return render(request, 'AppHTML/test.html', context=params)
起動
python manage.py runserver 0.0.0.0:8000
結果
http://192.168.0.100:8000/orderApp/test