LoginSignup
2
0

More than 3 years have passed since last update.

【10分でできる】Djangoでサクッとローカルwebサイトを作る

Posted at

プロローグ

Djangoでサクッとローカルwebサイトを作ってみます。
記事の環境
 Window 10
 Django==3.1
 Python 3.7.6

手順

pythonは導入されている前提です。
とりあえず、pip installでDjangoを導入します。

pip install django



Djangoが導入できたら、構築していきます。

プロジェクトを作成するフォルダでコマンド実行します。
HelloWorldはプロジェクト名です。

django-admin startproject HelloWorld



こんな感じの構成が出来上がりました。

└─HelloWorld
    │  manage.py
    │
    └─HelloWorld
            asgi.py
            settings.py
            urls.py
            wsgi.py
            __init__.py



続いてアプリを作成します。
Goodbyeがアプリ名です。

python manage.py startapp  Goodbye



こんな感じの構成が出来上がりました。

│  manage.py
│
├─Goodbye
│  │  admin.py
│  │  apps.py
│  │  models.py
│  │  tests.py
│  │  views.py
│  │  __init__.py
│  │
│  └─migrations
│          __init__.py
│
└─HelloWorld
    │  asgi.py
    │  settings.py
    │  urls.py
    │  wsgi.py
    │  __init__.py
    │
    └─__pycache__
            settings.cpython-37.pyc
            __init__.cpython-37.pyc



アプリをプロジェクトに認識させます。
プロジェクトを管理しているsettings.pyを更新します。
アプリ名を「INSTALLED_APPS」配下に追記しました。

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



サイトアクセス用のURLを設定しておきます。
プロジェクトフォルダにあるurls.pyを更新しました。
pathの第一引数にurlを指定しています。
第二引数はアプリ側のurls.pyを参照できるようにincludeを使っています。

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

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



アプリ側のurls.pyも更新しておきます。
pathの第一引数はプロジェクト側のurls.pyで指定済みなので、空にします。
第二引数はurlへアクセスされたときに呼び出されるviewを指定。
第三引数は任意の名前です。

from django.urls import path
from . import views

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



これでアクセスする準備はできました。
続いてアクセス画面に表示する内容を簡単に作ります。
renderを使ってリクエストを別出しするhtmlへ渡します。

from django.shortcuts import render

# Create your views here.

def get_data(request):
    if "data" in request.GET:
        param = {'test':request.GET.get("data")}
    return render(request, 'Goodbye/index.html', param)



データを渡すhtmlを作成します。
アプリのフォルダにtemplatesフォルダと、その配下にアプリ名のフォルダを作成し、その配下にhtmlを作成しました。
{{変数}}でデータを受け取って表示させます。

<html>
<body>
  <p>{{test}}</p>
</body>
</html>



あとはDjangoに標準搭載されている開発用サーバを起動してアクセスするだけです。
渡した変数をパラメータで指定しています。
1.png

エピローグ

記事を書くのに時間がかかりましたが、表示するだけなら10分程度で完了できました。
お手軽ですね。

2
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
2
0