0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

Progateで作ったWebアプリをDjangoで作ってみる2! Part1 -初期設定編-

Last updated at Posted at 2021-07-27

目標物の確認

ProgateのNode.jsコースで作ったブログアプリと同じものをDjangoで作ってみます。

Djangoでのアプリ開発の一連の流れを整理するために記していきます。

完成イメージ
image.png

#初期設定
まずは初期設定です。

プロジェクトを作成して、アプリ(blogapp)を作成します。

> django-admin startproject blogapp
> cd blogapp
> python manage.py startapp blog

「templates」ディレクトリと「static」ディレクトリを作成して、さらにそれぞれの下層に「blog」ディレクトリを作成します(☆1)。

「blog」ディレクトリ構造は、今の段階でこんな感じです。

blog
├── __init__.py
├── admin.py
├── apps.py
├── migrations
│   └── __init__.py
├── models.py
├── static # ☆1
│   └── blog # ☆1
├── templates # ☆1
│   └── blog # ☆1
├── tests.py
├── urls.py
└── views.py

setting.pyINSTALLED_APPSにアプリ名(blog)を登録します(☆2)。

blogapp/blogapp/setting.py
INSTALLED_APPS = [
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    'blog', #☆2
]

プロジェクトのurls.pyファイルからアプリのurls.pyファイルを呼び出すためのコードを書きます(☆3)。

blogapp/blogapp/urls.py
from django.contrib import admin
from django.urls import path, include

urlpatterns = [
    path('admin/', admin.site.urls),
    path('', include('blog.urls')) #☆3
]

トップ画面を作るところまでやっていきます。アプリのurls.pyにコードを追加します。

アプリのurls.pyに最低限のコードを書かないとマイグレーションを実行したときにエラーが出てしまいます。

なので、トップページだけ作ります。

namespace(app_name)も設定しておきます。

blogapp/blog/urls.py
from django.urls import path
from .views import BlogTop

app_name = 'blog'

urlpatterns = [
    path('', BlogTop.as_view(), name='top'), 

]

トップページの表示はTemplateViewで対応します(☆4)。

blogapp/blog/views.py
from django.shortcuts import render
from django.views.generic import TemplateView

class BlogTop(TemplateView): #☆4
    # top.htmlをレンダリング
    template_name = 'blog/top.html'

トップページはDjangoのタグで整えます(☆5)。

top.html
{% load static %} <!--☆5-->
<!DOCTYPE html>
<html>
  <head>
    <meta charset="utf-8">
    <title>BLOG</title>
    <link rel="stylesheet" href="{% static 'blog/style.css' %}"> <!--☆5-->
  </head>
  <body>
    <div class="top">
      <div class="wrapper">
        <div class="content">
          <h2>わんこの学びブログ</h2>
          <h1><img src="{% static 'blog/top-logo.svg' %}" alt=""></h1> <!--☆5-->
          <p>プログラミングに関する雑学ブログ。<br>だれかに教えたくなる豆知識をお届けします。</p>
          <a class="btn" href="{% url 'blog:list' %}">読みはじめる</a> <!--☆5-->
        </div>
        <img class="image" src="{% static 'blog/top.svg' %}" alt=""> <!--☆5-->
      </div>
    </div>
  </body>
</html>

models.pyはまだ作成していませんが、Djangoがデフォルトで準備しているUserテーブルを作成するため、マイグレーションしておきます。

> python manage.py makemigrations
> python manage.py migrate

これで初期設定は完了しました。

トップページも表示されました。

image.png

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?