SSブログ

1.5 アプリケーション作成(DJango 2.2.7) [Django]

経験した事のあるWeb開発だと、概ね作業順序は下記であった。



1.画面レイアウト設計

2.DB設計

3.コーディング



大きな流れは変わりがなさそうだと感じたが、チュートリアルをやった方は

既におわかりだと思いますが、URLの設計も大事そうだったので、今回作業的にはURL設計を追加した。

1.画面レイアウト設計

2.DB設計

3.URL設計(プロジェクト、アプリケーション設計)

4.コーディング


今回のプロジェクト名は、「Recuruitment」 アプリケーション名は、「accounts」、

ユーザ関連のアプリケーション(ログインとかユーザ登録など)もう一つは、「applicantctl」、

応募サイトのアプリケーションの二つ。

※accountsは、Djangoが最初から用意されているユーザ関連のアプリケーションです。

まとめると下記としました。


プロジェクト名 Recruitment
アプリ名 accounts
ログイン /accounts/login/
ログアウト /accounts/logout/
サインアップ /accounts/signup/
アプリ名 applicantctl
トップ(応募者一覧) /applicant/list
応募者登録 /applicant/add/<id>
応募者更新  /applicant/upd/<id>
応募者削除 /applicant/del/<id>
書類選考 /applicant/judgment/<id>
では、プロジェクトを作成します。
その前に下記を行います。
1. 仮想環境構築
2. Djangoインストール
    (過去の記事参照)
3.プロジェクト作成
    django-admin startproject Recruitment
WS000014.JPG
4. applicantctlアプリケーション作成
    
    cd Recruitment  ← 作成したプロジェクトにディレクトリ移動します。 
    python manage.py startapp applicantctl ←アプリケーション作成
WS000015.JPG
  ディレクトリはこんな感じになります。
WS000016.JPG
  
5.日本語化
     Recruitment\Recruitment\settings.py
    (過去の記事参照)
6.アプリケーションの追加
     Recruitment\Recruitment\settings.py
     14行目 'applicantctl',
#ALLOWED_HOSTS = []
ALLOWED_HOSTS = ['127.0.0.1', 'localhost']


# Application definition

INSTALLED_APPS = [
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    'applicantctl',
]

MIDDLEWARE = [
    'django.middleware.security.SecurityMiddleware',
    'django.contrib.sessions.middleware.SessionMiddleware',
    'django.middleware.common.CommonMiddleware',
    'django.middleware.csrf.CsrfViewMiddleware',
    'django.contrib.auth.middleware.AuthenticationMiddleware',
    'django.contrib.messages.middleware.MessageMiddleware',
    'django.middleware.clickjacking.XFrameOptionsMiddleware',
]
7. modelの作成 - DB作成
  ちょっとここは飛ばします。
  別の記事で書きます。
8. プロジェクトレベルのURL
  Django のURL設定は「アプリケーションレベルのURL設定」と
  「プロジェクトレベルのURL設定」の2つが必要です。
    
      Recuruitment\Recruitment\urls.py
"""Recruitment URL Configuration

The `urlpatterns` list routes URLs to views. For more information please see:
    https://docs.djangoproject.com/en/2.2/topics/http/urls/
Examples:
Function views
    1. Add an import:  from my_app import views
    2. Add a URL to urlpatterns:  path('', views.home, name='home')
Class-based views
    1. Add an import:  from other_app.views import Home
    2. Add a URL to urlpatterns:  path('', Home.as_view(), name='home')
Including another URLconf
    1. Import the include() function: from django.urls import include, path
    2. Add a URL to urlpatterns:  path('blog/', include('blog.urls'))
"""
from django.contrib import admin
from django.urls import path, include

urlpatterns = [
    path('admin/', admin.site.urls),
    path('applicantctl/', include('applicantctl.urls')),

]
アプリケーションレベルのURL設定
    Recuruitment\applicantctl\urls.py
#Recuruitment/applicantctl/urls.py
from django.urls import include, path
from django.conf.urls import url
from . import views

app_name ='applicantctl'

urlpatterns = [
    # ex: /
    path('', views.index, name='index'),
    path('list', views.index, name='index'),
 
    # ex: /add/
    path('add/', views.add, name='add'),

    # ex: /add/judgment/1/
    path('add/judgment/<int:pk>/', views.add_judgment, name='add_judgment'),

    # ex: /upd/1/
    path('upd/<int:pk>/', views.upd, name='upd'),
 
    # ex: /delete/1/
    path('delete/<int:pk>/', views.delete, name='delete'),
 
    # ex: /judgment/1/
    path('judgment/<int:pk>/', views.judgment, name='judgment'),

]
9. URLから呼出されるViewを記載
  とりあえず、全て簡易のダミーが文字がされるように作成
      Recuruitment\Recruitment\view.py
from django.shortcuts import render
from django.http import HttpResponse, HttpResponseRedirect
from django.contrib.auth.decorators import login_required

# Create your views here.
def index(request):
    return HttpResponse("index")

def add(request):
    return HttpResponse("add")

def upd(request, pk ):
    return HttpResponse("upd %s" % pk)

def delete(request, pk ):
    return HttpResponse("delete %s" % pk)

def judgment(request, pk ):
    return HttpResponse("judgment %s" % pk)
10. サーバを起動してアクセスしてみます。
  下記のように表示されたらとりあえずapplicantctl側の
  骨組みは出来た感じ。
WS000022.JPG
最後にやっぱりソースは、画像じゃなくて
エディタのような感じで掲載したいな・・。
という事で、過去も遡ってエディタ風にしてみました
疲れた・・。

タグ:Python Django
nice!(0)  コメント(0) 
共通テーマ:パソコン・インターネット

nice! 0

コメント 0

コメントを書く

お名前:
URL:
コメント:
画像認証:
下の画像に表示されている文字を入力してください。

※ブログオーナーが承認したコメントのみ表示されます。

この広告は前回の更新から一定期間経過したブログに表示されています。更新すると自動で解除されます。