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?

Python Djangoを使ってみる その2(自分用)

Posted at

今回もDjangoについて、使いながら気付いたことを書き留めていく。
前回までの内容

1.ディレクトリ構造を確認

メインディレクトリを含めた現在のディレクトリ構造を見てみる。
前回触ったファイルの位置関係だけを確認しておく。

urls.py: メインディレクトリ、追加したアプリのどちらにも存在
settings.py: メインディレクトリにだけ存在
views.py: 追加したアプリにだけ存在

myprojectのディレクトリ

myproject/
│
├── __init__.py
├── asgi.py
├── settings.py
├── urls.py
├── wsgi.py
myapp/
├──
└── migrate/
│       └──  __init__.py
├── __init__.py
├── admin.py
├── apps.py
├── models.py
├── tests.py
├── views.py

2.settings.pyの設定を変更する

よくわからないが、とりあえずここは変更しても問題なさそうなところだけを変更してみる。

settings.py
LANGUAGE_CODE = 'ja'  # en-us ⇒ ja

TIME_ZONE = 'Asia/Tokyo' # UTC ⇒ Asia/Tokyo

3.HTMLテンプレートを作成する

Djangoでは、HTMLファイルをテンプレートとして使います。まず、テンプレートを保存するディレクトリを作成し、そこにボタンを表示するHTMLを配置します。

3.1: templates フォルダ、myapp フォルダ、index.htmlを作成する

myappディレクトリ

myapp/
│
├── templates/
│   └── myapp/
│       └── index.html  # HTMLファイル
└── migrate/
│       └──  __init__.py
├── __init__.py
├── admin.py
├── apps.py
├── models.py
├── tests.py
├── views.py

3.2: index.htmlの内容を作成
試しにボタンを一つ作ってみる。
templates/myapp/index.html に次のコードを記述します。これは、ボタンを表示し、クリックすると /clicked/ というURLに遷移します。

index.html
<!DOCTYPE html>
<html lang="ja">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>ボタンの例</title>
</head>
<body>
    <h1>ようこそ</h1>
    <form action="/clicked/" method="get">
        <button type="submit">ここをクリック</button>
    </form>
</body>
</html>

3.3: ビューを作成
myapp/views.py に、ボタンがクリックされた後に表示されるビュー (clicked_view) を追加します。

myapp/views.py
from django.http import HttpResponse
from django.shortcuts import render

# 「ようこそ」とボタンを表示するビュー
def welcome_view(request):
    return render(request, 'myapp/index.html')

# ボタンがクリックされたときに表示されるビュー
def clicked_view(request):
    return HttpResponse("ボタンがクリックされました!")

3.4: ルーティング設定
次に、urls.py ファイルを編集して、ビューを呼び出せるようにURLを設定します。

myproject/urls.py
from django.contrib import admin
from django.urls import path
from myapp.views import welcome_view, clicked_view  # viewsをインポート

urlpatterns = [
    path('admin/', admin.site.urls),
    path('', welcome_view),  # ルートURLで「ようこそ」を表示
    path('clicked/', clicked_view),  # ボタンがクリックされたときのURL
]

4.開発用サーバーを起動

4.1: 開発用サーバーを起動し、http://127.0.0.1:8000/にアクセスする。
ようこそ」と「ここをクリック」というボタンが表示される。

python manage.py runserver

ボタンをクリックし、「ボタンがクリックされました!」と表示されたらOK!
とりあえず、なんとなく使い方のイメージは掴めてきたような気がする。

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?