0
0

【初心者向け】Djangoでアプリ作成【Python】

Posted at

Djangoとは?

DjangoはPythonで書かれた高水準なWebフレームワークで、迅速な開発とクリーンで実用的なデザインを特徴としています。

インストール

.Djangoプロジェクトの作成
pip install django
.アプリケーションの作成
cd myblog
python manage.py startapp blog

アプリケーションの設定

myblog/settings.pyを開き、INSTALLED_APPSリストにblogを追加します。

INSTALLED_APPS = [
    ...
    'blog',
]

モデルの作成

blog/models.pyに、ブログ記事を表すPostモデルを定義します。

from django.db import models
from django.utils import timezone

class Post(models.Model):
    title = models.CharField(max_length=200)
    text = models.TextField()
    created_date = models.DateTimeField(default=timezone.now)
    published_date = models.DateTimeField(blank=True, null=True)

    def publish(self):
        self.published_date = timezone.now()
        self.save()

    def __str__(self):
        return self.title

マイグレーションの作成と適用

モデルをデータベースに反映させるためにマイグレーションを作成し、適用します。

python manage.py makemigrations
python manage.py migrate

管理画面の設定

from django.contrib import admin
from .models import Post

admin.site.register(Post)

ビューとテンプレートの作成

blog/views.pyに、ブログ記事のリストを表示するビューを作成します。

from django.shortcuts import render
from .models import Post

def post_list(request):
    posts = Post.objects.all()
    return render(request, 'blog/post_list.html', {'posts': posts})

blog/templates/blog/post_list.htmlというファイルを作成し、以下のHTMLコードを追加します。

<!DOCTYPE html>
<html>
<head>
    <title>Blog</title>
</head>
<body>
    <h1>Blog Posts</h1>
    <ul>
        {% for post in posts %}
            <li>
                <h2>{{ post.title }}</h2>
                <p>{{ post.text }}</p>
                <p><em>Published on {{ post.published_date }}</em></p>
            </li>
        {% endfor %}
    </ul>
</body>
</html>

blog/urls.pyを作成し、ビューをURLにマッピングします。

from django.urls import path
from . import views

urlpatterns = [
    path('', views.post_list, name='post_list'),
]

myblog/urls.pyにblogのURL設定を含めます。

from django.contrib import admin
from django.urls import include, path

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

サーバーの起動と確認

すべての設定が完了したら、開発用サーバーを起動して、ブラウザでアプリケーションを確認します。

python manage.py runserver

ブラウザでhttp://127.0.0.1:8000/にアクセスすると、ブログ記事が表示されます。

.フォルダ構成
myblog/
├── blog/
│   ├── migrations/
│   │   └── __init__.py
│   ├── __init__.py
│   ├── admin.py
│   ├── apps.py
│   ├── models.py
│   ├── tests.py
│   ├── urls.py
│   └── views.py
├── myblog/
│   ├── __init__.py
│   ├── asgi.py
│   ├── settings.py
│   ├── urls.py
│   └── wsgi.py
├── manage.py
└── blog/
    └── templates/
        └── blog/
            └── post_list.html

myblog/:プロジェクトのルートディレクトリ
blog/:アプリケーションディレクトリ
migrations/:データベースマイグレーションファイルを含むディレクトリ
__init__.py:このディレクトリがPythonパッケージであることを示すファイル
admin.py:Django管理画面にモデルを登録するためのファイル
apps.py:アプリケーション設定を含むファイル
models.py:データベースモデルを定義するファイル
tests.py:アプリケーションのテストを書くためのファイル
urls.py:アプリケーションのURLルーティングを定義するファイル
views.py:ビュー関数を定義するファイル
myblog/:プロジェクト設定ディレクトリ
__init__.py:このディレクトリがPythonパッケージであることを示すファイル
asgi.py:ASGI設定ファイル(非同期サーバーゲートウェイインターフェース)
settings.py:プロジェクトの設定ファイル
urls.py:プロジェクトのURLルーティングを定義するファイル
wsgi.py:WSGI設定ファイル(Webサーバーゲートウェイインターフェース)
manage.py:Django管理コマンドを実行するためのスクリプト
blog/templates/blog/post_list.html:ブログアプリのテンプレートファイル

まとめ

DjangoはPythonで作られた高水準なWebフレームワークで、迅速な開発を支援します。
インストール後、プロジェクトとアプリを作成し、モデルやビューを定義してデータベースと連携させます。
アプリケーションの設定やテンプレート作成後、サーバーを起動して動作を確認できます。

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