django

pythonのcgiでdbにアクセスできるようになった。
さあ、dbを使ってちょっとしたアプリケーションを作ってみたいが、
何をするにもサービスにログインする仕組みは必要だろう。
以前からログインの仕組みをやりたいと思っていた。
しらべるとdjangoを使った方法が紹介されていたので、
まずdjangoを使ってみる。

centos8, python3が前提


pip intall django

以下は適当な場所にフォルダを作り、そこで実行した。

プロジェクトの作成
# django-admin startprojects myproject

#cd myproject

アプリケーションの作成
#python manage.py startapp myapp

myapp/views.py を編集

from django.shortcuts import render

# Create your views here.

from django.http import HttpResponse

def index(request):
        return HttpResponse("Hello")


myproject/urls.py を編集、
import myapp.views を追加、
最後のところに作成したアプリケーションへのpathを追加

from django.contrib import admin
from django.urls import path
import myapp.views

urlpatterns = [
    path('admin/', admin.site.urls),
    path(r'', myapp.views.index, name='index')
]


myproject/myproject/settigs.py

にアクセスを許可するホスト名を追加する

ALLOWED_HOSTS = ['*']
で、なんでも許可

デフォルトは何も設定されていないので必ずエラーになる。

プロジェクトフォルダにある manage.pyを使って
migrate(設定の反映みたいなもの?)を実行

python manage.py migrate


アプリケーションを実行
xx.xx.xx.xxはサーバのグローバルIPアドレス
アドレスを指定しないと127.0.0.1になり、外部からアクセスできない。

python manage.py runserver xx.xx.xx.xx:8000


fierwall-cmdでtcp8000を開ける。

http://www.example.com:8000
にアクセス

Hello
と表示される。