LoginSignup
3
4

More than 3 years have passed since last update.

Djangoを使ったTwitter風アプリの作成 ① Hello Worldを表示させる

Posted at

はじめに
python、そしてDjangoのインストールは終わっているのでアプリの作成から行きます。
(他の記事に簡単にまとめてあるのでそちらをぜひ。)

Djangoとは
WEBアプリケーションを作る為のフレームワーク。
フレームワークとは、内容がパターン化できる作業を簡略化し、
アプリケーション作成の能率を上げるものです。
Python製のフレームワークはBottleFlaskなどいくつかありますが、
Djangoは拡張がしやすい、実用性が高いなどの特徴があります。
また、はじめからuser認証や管理画面などよく使う機能が入っていて便利です。

実際に作っていく

1・作業用ディレクトリを作成
$ mkdir (ディレクトリ名)
作ったディレクトリに移動します。

2・プロジェクト作成
プロジェクトを作成し、その中でアプリを作る、という流れです。
今回は
プロジェクト名: tclone
アプリケーション名: index
で作りました。
まず 
$ django-admin startproject tclone でプロジェクトを作成し、
tcloneディレクトリに移動した後
$ python manage.py startapp index
で、indexというフォルダが作成されました。

・作成されたindexフォルダの構成

.
├── init.py
├── admin.py
├── apps.py
├── migrations
│ └── init.py
├── models.py
├── tests.py
└── views.py

3・実装
処理の大まかな流れは、
1、設定したディレクトリ(この場合は、ai_academy/tclone)内の
urls.pyでどのアプリケーションに処理を渡すか決定。
つまりデータの処理はここが起点になる。
2、1.で決定されたアプリケーション内のurls.pyで、
同ディレクトリ内のviews.pyでどのアクションを動かすか決定
3、アクション発動
4、アクションの結果(例:データベースからデータを持ってくる)を
クライアントに返す

①urls.pyを設定する

それでは、その流れに従って、urls.pyを設定していきます。
(今回はadminアプリケーションは使わないため、コメントアウトします。
該当部分を以下のように修正してください。)

** (ディレクトリ名)/tclone/tclone/urls.pyを開く**

  from django.contrib import admin

  from django.urls import path,include   **(includeを追加)**

  urlpatterns = [
       path('admin/', admin.site.urls), **(コメントアウト)**
       path('', include('index.urls')), **(こちらを追加)**
  ]

6行目は「''」で空欄、つまりトップページを設定し、
include('index.urls')でindexアプリケーション内のurls.pyに処理を引き継ぐ、
という意味です。

なので今度はindexアプリケーション内のurls.pyを設定します。
indexディレクトリ内に「urls.py」ファイルを新たに作成し、以下の内容にします。

** (ディレクトリ名)/tclone/index/urls.pyを開く**

1. from django.urls import path
2. from . import views
3. urlpatterns = [
5. path('', views.index, name='index'),
]

5行目では「''」がindexアプリケーション内トップページに
アクセスがあった場合を示しています。その次にviews.indexとありますが、
これは、views.pyでindexアクションを呼び出すことを示しています。

今度はindexアプリケーションを設定ファイルに追加する必要があります。
以下のファイルの該当部分に追加をします。

(ディレクトリ名)/tclone/tclone/settings.py

INSTALLED_APPS = [

'django.contrib.admin',

'django.contrib.auth',

'django.contrib.contenttypes',

'django.contrib.sessions',

'django.contrib.messages',

'django.contrib.staticfiles',

'index', # こちらを追加

]

ややこしい。

今度はHello Worldを表示する画面の設定をします。
indexディレクトリ内にtemplatesディレクトリを作成し、
その中にもindexディレクトリを作成します。
その内部にindex.htmlというファイルを作成します。
ファイルには以下の内容を記述します。

(ディレクトリ名)/tclone/index/templates/index/index.html

      Hello World

最後にindexアプリケーションのviews.pyにアクションを追加します。
以下の内容を記述。

(ディレクトリ名)/tclone/index/views.py

 from django.shortcuts import render

 def index(request):

 return render(request, 'index/index.html')

ここまで終わったら以下のコマンドでサーバを起動させましょう。
ディレクトリを移動していたら
、manage.pyのある(ディレクトリ名)/tcloneディレクトリ内で実行します。

   $ python manage.py runserver

http://127.0.0.1:8000 をブラウザで開きます。
Hello Worldと画面に表示されたはずです。

おわりに
ファイルとかディレクトリとかややこしい。。
railsもはじめほんとにわからなかったので数をこなす。
ここからツイート機能、いいね、編集、削除を足していく!!

3
4
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
3
4