Pythonでは「とりあえず使いそうなやつ全部importしとく」とかができるが、Goではimportしたのに使っていないと怒られて実行できない。この仕様の背景ってなんだろうと思って調べていた。
この記事が良かった。
https://budougumi0617.github.io/2019/10/06/imported-declared-not-used-error/
Pythonでは「とりあえず使いそうなやつ全部importしとく」とかができるが、Goではimportしたのに使っていないと怒られて実行できない。この仕様の背景ってなんだろうと思って調べていた。
この記事が良かった。
https://budougumi0617.github.io/2019/10/06/imported-declared-not-used-error/
Djangoをインストールしたら、まずはプロジェクトを作成する。
すでにインストールされているか確認したい場合、下記コマンドでバージョンを確認する。
$ python -m django --version
プロジェクトを作成したいディレクトリに移動し、以下のコマンドを入力。
$ django-admin startproject mysite
すると下記のように作成される。
mysite/ ----->プロジェクトのコンテナ manage.py ------>プロジェクトを操作するためのコマンドラインユーティリティ mysite/ ------>プロジェクトの実際のPythonパッケージでimportの際に使用する __init__.py ----->Pythonへパッケージと知らせるための空のファイル settings.py ----->プロジェクトの設定ファイル urls.py ----->プロジェクトのURL宣言 asgi.py ----->プロジェクトを提供するASGI互換webサーバーエントリポイント wsgi.py ----->プロジェクトをサーブするためのASGI互換webサーバーエントリポイント
プロジェクト動作確認のために開発用サーバーを起動する。
$ python manage.py runserver
以下の出力が出て、
Performing system checks... System check identified no issues (0 silenced). You have unapplied migrations; your app may not work properly until they are applied. Run 'python manage.py migrate' to apply them. 11月 02, 2023 - 15:50:53 Django version 4.2, using settings 'mysite.settings' Starting development server at http://127.0.0.1:8000/ Quit the server with CONTROL-C.
http://127.0.0.1:8000/にアクセスして "Congratulations!"が表示されていれば成功です。
また、これは開発用に用意されているサーバーであり、実運用には使用してはいけません。
これでプロジェクトが立ち上がりアプリケーションを作成する準備が整いました。
今回はアプリケーションをトップレベルモジュールとしてインポートできるように、manage.pyと同じディレクトリに入って以下のコマンドを入力します。
$ python manage.py startapp polls
以下のように作成されます。
polls/ __init__.py admin.py apps.py migrations/ __init__.py models.py tests.py views.py ------>フロント部分
views.py
from django.http import HttpResponse
def index(request):
return HttpResponse("Hello, world. You're at the polls index.")
このviewsを呼ぶためには、URLを対応づけする必要があります。
polls/の直下に urls.py を下記の内容で作成します。
from django.urls import path
from . import views
urlpatterns = [
path("", views.index, name="index"),
]
次にルートのURLconfに polls.urls
モジュールの記述を反映させます。mysite/urls.pyに下記の内容を記載します。
from django.contrib import admin
from django.urls import include, pathurlpatterns = [
path("polls/", include("polls.urls")),
path("admin/", admin.site.urls),
]
設定が完了したら再度動作確認を行います。
$ python manage.py runserver
http://localhost:8000/polls/ でviews.pyの内容が確認できれば成功です。