1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

djangoでアプリを作成するまで

Posted at

##概要
PythonのフレームワークであるDjangoでアプリを作ってherokuに更改するまでをまとめてみた。
今回は参考用のため必要最低限のことしか記載しておりません。

##前提
仮想環境で構築しておりますが、仮想環境以外でも同様の事が可能です。
Python 3.7.12

##手順
####djangoのインスストール

% cd (作業用のディレクトリ)
% pip install django

####Djangoプロジェクトを始める

$django-admin startproject config . 

これはconfigというフォルダ名で、Djangoプロジェクトをスタートするコマンドです。
フォルダ名はconfig出なくてもOK
最後の「.」は現在のディレクトリで作成するためオプション
これによりmanage.pyなどのファイルができる
image.png

####アプリケーションを開始する

python manage.py startapp twanalyse

twanalyseは使用するアプリケーション名※任意

####config/settings.pyの初期設定

事前にapps.pyのクラス名を確認しておく

twanalyse/apps.py
class TwanalyseConfig(AppConfig):
    default_auto_field = 'django.db.models.BigAutoField'
    name = 'twanalyse'

先ほどのクラス名を含めた読み込ませる設定とその他の設定を行う

config/settings.py
# 以下の項目を日本設定に書き換える
LANGUAGE_CODE = 'ja'
TIME_ZONE = 'Asia/Tokyo'

追記する
INSTALLED_APPS = [
    'django.contrib.admin',
         ・・・
    'twanalyse.apps.TwanalyseConfig',
]

####データベースを構築する
Djangoでデータベースを扱うには、以下の手順を実行する必要があります。
①models.pyでモデルを定義
②マイグレーションファイルを作成
③データベースのテーブルに反映

①models.pyでモデルを定義
使用するデータベースを作成する ※ログイン用のID、パスワードは別途作成するのでここでは作らない

twanalyse/models.py
# Create your models here.
class Post(models.Model):
  # ユーザーIDを入力するフィールド
  userId = models.CharField(max_length = 100)
  # auto_now_add=Trueでデータを作成した時に現在の日付を自動で設定する
  acquisition_date = models.DateTimeField(auto_now_add=True)

②マイグレーションファイルを作成

% python manage.py makemigrations
% python manage.py migrate

ここでDBを管理するためのスーパーユーザーを作成しておく

% python manage.py createsuperuser

③データベースのテーブルに反映
作成したテーブルを管理画面で使うための追加設定

twanalyse/admin.py
from django.contrib import admin
# Postクラスを読み込む(Postはデータベースのカラムを定義したクラス)
from twanalyse.models import Post

# Register your models here.
admin.site.register(Post)

HTMLファイル(トップページ)を作成する
アプリケーションフォルダ/templates/アプリケーション名とフォルダを作りその中にHTMLファイルを作成する
image.png

中身を記載する

twanalyse/templates/twanalyse/index.html
<h1>テスト</h1>

HTMLファイルを開くための設定をする
ユーザーがアクセスしてきた時にアプリケーションフォルダ内のurlsファイルを開く

config/url.py
from django.contrib import admin
from django.urls import path,include

urlpatterns = [
    path('admin/', admin.site.urls),
    # アプリケーションフォルダ内のurlsファイルを開く
    path("", include("twanalyse.urls"))
]

アプリケーション名/urls.pyを手動で作成し以下を記載する

twanalyse/urls.py
from django.urls import path
from twanalyse.views import toppage

urlpatterns = [
  path("",toppage.as_view(),name="toppage")
]

アプリケーション名/views.pyにhtmlを描写するための記載をする

twanalyse/views.py
from django.shortcuts import render
from django.views.generic.base import TemplateView

# Create your views here.
class toppage(TemplateView):
  template_name = "twanalyse/index.html"

これで一応HTMLファイルの表示ができるようになる。
以下のコマンドで自前のローカルサーバーを起動する

% python manage.py runserver

これで「http://127.0.0.1:8000/」を開けばHTMLファイルの内容が表示されているのがわかる
image.png

これで一応ページが表示されるようになったが、このままではherokuにはあげられないため以下の設定をする(※詳しいデプロイ方法は次回以降に記載予定)

####.gitignoreを設定する(必要に応じて)
gitやherokuで使用するためにgitignoreの設定をする

.gitignore
.env
*.pyc
db.sqlite3
myvenv
__pycache__
local_settings.py

####Procfileを作成する
アプリーケーションフォルダ直下にProcfileファイルを作成する
以下の内容を記載する

web: gunicorn config.wsgi

あとはherokuの設定などをしていく

1
1
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
1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?