CentOs8 Python DjangoでWebアプリ開発環境の構築手順
pythonのWebアプリケーションフレームワークであるDjangoでの開発環境の構築手順です。途中、ちょこちょこエラーが発生しました。
環境
- OS CentOS Linux release 8.0.1905 (Core)
- Python 3.6.8
- pip 9.0.3
- django 3.0
※CentOs8にpythonのインストールはこちら
Djangoインストール
まずは開発用のディレクトリを作成します。
## ディレクトリ作成
mkdir /home/www
## 移動
cd /home/www
Djangoをインストールします
pip install django
エラーが発生しました
Exception:
Traceback (most recent call last):
File "/usr/lib/python3.6/site-packages/pip/basecommand.py", line 215, in main
status = self.run(options, args)
File "/usr/lib/python3.6/site-packages/pip/commands/install.py", line 365, in run
strip_file_prefix=options.strip_file_prefix,
File "/usr/lib/python3.6/site-packages/pip/req/req_set.py", line 789, in install
**kwargs
File "/usr/lib/python3.6/site-packages/pip/req/req_install.py", line 854, in install
strip_file_prefix=strip_file_prefix
File "/usr/lib/python3.6/site-packages/pip/req/req_install.py", line 1069, in move_wheel_files
strip_file_prefix=strip_file_prefix,
File "/usr/lib/python3.6/site-packages/pip/wheel.py", line 345, in move_wheel_files
clobber(source, lib_dir, True)
File "/usr/lib/python3.6/site-packages/pip/wheel.py", line 287, in clobber
ensure_dir(dest) # common for the 'include' path
File "/usr/lib/python3.6/site-packages/pip/utils/__init__.py", line 83, in ensure_dir
os.makedirs(path)
File "/usr/lib64/python3.6/os.py", line 210, in makedirs
makedirs(head, mode, exist_ok)
File "/usr/lib64/python3.6/os.py", line 220, in makedirs
mkdir(name, mode)
PermissionError: [Errno 13] 許可がありません: '/usr/local/lib/python3.6'
ユーザーで実行しているので/usr/localにアクセスできないため発生。 –user オプションをつけて、~/.local/ にインストールします。
pip install django --user
プロジェクト作成
下記のコマンドでプロジェクトを作成します。ここではhelloという名前で作成してます。
django-admin startproject hello
WEBサーバーを起動します。
## プロジェクトに移動
cd hello
## プライベートIPを指定して起動
python manage.py runserver 192.168.xxx.xxx:8000
起動時に下記のエラーが発生。
Invalid HTTP_HOST header: '192.168.xxx.xxx:8000'. You may need to add '192.168.xxx.xxx' to ALLOWED_HOSTS
エラーメッセージ通りに、settings.pyのALLOWED_HOSTSに、プライベートIPを設定
ALLOWED_HOSTS = []
<追加>
ALLOWED_HOSTS = ['192.168.xxx.xxx']
ついでに、TIMEZONEなどの設定も変更しておきます。
LANGUAGE_CODE = 'ja'
TIME_ZONE = 'Asia/Tokyo'
USE_I18N = True
USE_L10N = True
USE_TZ = True
再度起動します。
## プライベートIPを指定して起動
python manage.py runserver 192.168.xxx.xxx:8000
ブラウザから http://プライベートIP:8000 にアクセスすると下記の画面が表示されます。
Hello Worldを出力してみる
アプリケーションを作成します。
python manage.py startapp testapp
プロジェクトの構成です。
.
├── db.sqlite3
├── hello
│ ├── __init__.py
│ ├── __pycache__
│ │ ├── __init__.cpython-36.pyc
│ │ ├── settings.cpython-36.pyc
│ │ ├── urls.cpython-36.pyc
│ │ └── wsgi.cpython-36.pyc
│ ├── asgi.py
│ ├── settings.py
│ ├── urls.py
│ └── wsgi.py
├── manage.py
└── testapp
├── __init__.py
├── __pycache__
│ ├── __init__.cpython-36.pyc
│ ├── admin.cpython-36.pyc
│ ├── models.cpython-36.pyc
│ ├── urls.cpython-36.pyc
│ └── views.cpython-36.pyc
├── admin.py
├── apps.py
├── migrations
│ ├── __init__.py
│ └── __pycache__
│ └── __init__.cpython-36.pyc
├── models.py
├── tests.py
testappディレクトリ配下にviews.pyを下記のコードで作成します。
from django.shortcuts import render
from django.http import HttpResponse
# Create your views here.
def index(request):
return HttpResponse("<H1>Hello World</H1>")
同様にurls.pyを作成します。
from django.urls import path
from . import views
urlpatterns = [
path('', views.index, name='index'),
]
helloディレクトリ配下のurls.pyを下記のように編集します。
from django.contrib import admin
from django.urls import path, include
urlpatterns = [
path('admin/', admin.site.urls),
path('', include('testapp.urls')),
]
ブラウザから http://プライベートIP:8000 にアクセスすると「Hello World」が表示されます。
-
前の記事
Vue.jsのライブラリvue-particlejsをインストールしてパーティクルアニメーションを実装する手順 2020.02.10
-
次の記事
Django Webページの作成手順 2020.02.10
コメントを書く