Quantcast
Channel: 初心者タグが付けられた新着記事 - Qiita
Viewing all articles
Browse latest Browse all 21081

初心者の初心者による初心者のためのDjangoチュートリアルまとめ①

$
0
0

はじめに

今流行りのPython…
AI開発・ディープラーニングするにもPython、画像処理といえばPython、ログ解析もPython、Webアプリケーション作るにもDjangoでPython……

ふとこんな声が聞こえたような気がしました
「Pythonみんなやってる、やってないのお前だけ」

しゃあない、、Pythonやったりますわ。

Djangoの公式ドキュメントを読み解いていきたいと思います。
https://docs.djangoproject.com/ja/3.0/

対象とする読者レベル

僕は現在B2です。情報系の学部でもないです。

普段はElixir/PhoenixでWebアプリケーション開発をしてます。
(PhoenixはElixirのWebフレームワークです)

Pythonに関しては授業で軽く触ったことあるよくらいです。

なのでレベルとしては、
他のWebフレームワークなら使ったことあるけど、DjangoはもちろんPythonもまともに触ったことはないっすわー
くらいの人向けの記事になると思います。

また、インストールなどはなぜか自分のPCにされてあったので(ほんとになぜ)、ここでの紹介は飛ばします。

ちなみに以下のコマンドでバージョンが帰って来ればDjangoのインストールまでできています。

$ python -m django --version

はじめての Django アプリ作成、その1

https://docs.djangoproject.com/ja/3.0/intro/tutorial01/

プロジェクト作成

$ django-admin startproject mysite

これで作成されるのは以下です

mysite/
    manage.py
    mysite/
        __init__.py
        settings.py
        urls.py
        asgi.py
        wsgi.py

上から行きます

mysite/
・rootディレクトリであるmysiteディレクトリに関しては特に意味を持たない、いつでも適当に名前変更して大丈夫。

manage.py
・コマンドラインユーティリティ。サーバーの立ち上げなどプロジェクトに関する操作を行う。

mysite
・アプリ名

__init__.py
・PythonパッケージであることをPythonに知らせる空のファイル

settings.py
・プロジェクトの設定ファイル

urls.py
・URLを書く(Railsとかで言うルーター?)

asgi.pywsgi.py
よくわからん

サーバー立ち上げ

$ python manage.py runserver

http://127.0.0.1:8000/にアクセスして
スクリーンショット 2020-01-01 23.41.17.png
これが出たら成功です。

また、

$ python manage.py runserver 8080

でポート変更して起動

$ python manage.py runserver 0:8000

でサーバーのipも指定できます。

Polls アプリケーションをつくる

以下のコマンドで作成します。
また、アプリケーション作成はファイルのどこで行っても良いそうです。

$ python manage.py startapp polls

作成されたアプリケーションの中身は以下のようになります。

polls/
    __init__.py
    admin.py
    apps.py
    migrations/
        __init__.py
    models.py
    tests.py
    views.py

はじめてのビュー作成

polls/views.py を編集します。

polls/view.py
fromdjango.httpimportHttpResponsedefindex(request):returnHttpResponse("Hello, world. You're at the polls index.")

urlを対応づける必要があるとのことです。urls.pyを作成します。

polls/urls.py
fromdjango.urlsimportpathfrom.importviewsurlpatterns=[path('',views.index,name='index'),]

その後mysite/url.pyの方に反映させます。

mysite/url.py
fromdjango.contribimportadminfromdjango.urlsimportinclude,pathurlpatterns=[path('polls/',include('polls.urls')),#add
path('admin/',admin.site.urls),]

この一連の流れは少しだけRailsなどのルーティングと異なりますね。

ここまでの設定でhttp://localhost:8000/polls/にアクセスすると
スクリーンショット 2020-01-02 1.42.43.png

こうなっていれば成功です!

(番外編)pathについて

pathは以下のように引数をとります

path(route, view, kwargs=None, name=None)

route "polls/"などpathのパターン

viewパターンが一致すると呼ばれるview

kwargs任意のキーワード引数を辞書として対象のビューに渡す。

name URLに名前をつけてプロジェクト内のどこからでもその名前で呼び出せるようにする。


Viewing all articles
Browse latest Browse all 21081

Trending Articles