学生向けプログラミング入門 | 無料

学生向けにプログラミングを無料で解説。Java、C++、Ruby、PHP、データベース、Ruby on Rails, Python, Django

Django3.2 | クラウドソーシングアプリの構築 | 12 | リファクタリング

↓↓クリックして頂けると励みになります。


11 | Gメール】 << 【ホーム】 >> 【13 | テンプレート



「crowdsource/core」フォルダに「customer」フォルダを新規作成します。
作成した「customer」フォルダに「views.py」ファイルを新規作成します。



新規作成 【Desktop/crowdsource/core/customer/views.py】

from django.shortcuts import render, redirect
from django.contrib.auth.decorators import login_required

@login_required()
def home(request):
    return render(request, 'home.html')



「crowdsource/core」フォルダに「courier」フォルダを新規作成します。
作成した「courier」フォルダに「views.py」ファイルを新規作成します。



新規作成 【Desktop/crowdsource/core/courier/views.py】

from django.shortcuts import render, redirect
from django.contrib.auth.decorators import login_required

@login_required()
def home(request):
    return render(request, 'home.html')



「core/views.py」ファイルを編集します。


記述編集 【Desktop/crowdsource/core/views.py】

from django.shortcuts import render, redirect
from django.contrib.auth import login

from . import forms

# Create your views here.
def home(request):
    return render(request, 'home.html')

def sign_up(request):
    form = forms.SignUpForm()

    if request.method == 'POST':
        form = forms.SignUpForm(request.POST)

        if form.is_valid():
            email = form.cleaned_data.get('email').lower()

            user = form.save(commit=False)
            user.username = email
            user.save()

            login(request, user, backend='django.contrib.auth.backends.ModelBackend')
            return redirect('/')


    return render(request, 'sign_up.html', {
        'form': form
    })



「crowdsource/urls.py」ファイルを編集します。


記述編集 【Desktop/crowdsource/crowdsource/urls.py】

from django.contrib import admin
from django.urls import path, include
from django.contrib.auth import views as auth_views
from core import views

from core.customer import views as customer_views
from core.courier import views as courier_views

customer_urlpatters = [
    path('', customer_views.home, name="home"),
]

courier_urlpatters = [
    path('', courier_views.home, name="home"),
]


urlpatterns = [
    path('admin/', admin.site.urls),
    path('oauth/', include('social_django.urls', namespace='social')),
    path('', views.home),

    path('sign-in/', auth_views.LoginView.as_view(template_name="sign_in.html")),
    path('sign-out/', auth_views.LogoutView.as_view(next_page="/")),
    path('sign-up/', views.sign_up),

    path('customer/', include((customer_urlpatters, 'customer'))),
    path('courier/', include((courier_urlpatters, 'courier'))),

]



「core/templates/home.html」ファイルを編集します。


記述編集 【Desktop/crowdsource/core/templates/home.html】

{% extends 'base.html' %}

{% block content %}

<div class="container">
    <div class="row">
        <div class="col-lg-12 text-center mt-5 mb-5">
            <h2>クラウドソーシングアプリ</h2>
        </div>

        <div class="col-lg-6 mb-4">
            <div class="card">
                <div class="card-body">
                    <h5 class="card-title">依頼者</h5>
                    <p class="card-text">Some quick example text to build on the card title and make up the bulk of the card's content.</p>
                    <a href="{% url 'customer:home' %}" class="btn btn-info">詳細</a>
                </div>
            </div>
        </div>
        <div class="col-lg-6 mb-4">    
            <div class="card">
                <div class="card-body">
                    <h5 class="card-title">仕事引受人</h5>
                    <p class="card-text">Some quick example text to build on the card title and make up the bulk of the card's content.</p>
                    <a href="{% url 'courier:home' %}" class="btn btn-info">詳細</a>
                </div>
            </div>
        </div>                     
    </div>


    </div>            
</div>

{% endblock %}



リファクタリングを行いました。
動作に変更がないことを確認してください。

リファクタリング動作確認
リファクタリング動作確認


↓↓クリックして頂けると励みになります。


11 | Gメール】 << 【ホーム】 >> 【13 | テンプレート