前回、Djangoを調べてインストールしました。
今回は実践です。
こちらのブログを参考にさせていただきました↓というかこのまま出来るか試してみました。
プロジェクトを作る
プロジェクトを作りたいディレクトリに移動して、
django-admin startproject [プロジェクト名]
と打つだけです。
raspberrypi:~ $ mkdir dreamer
raspberrypi:~ $ ls
dreamer
raspberrypi:~ $ cd dreamer/
raspberrypi:~/dreamer $ django-admin startproject dreamer
これでプロジェクトに必用な基本ディレクトリやファイルが生成されます。
dreamer/
manage.py
dreamer/
__init__.py
settings.py
urls.py
wsgi.py
ブログに書いてある通りにブログアプリを作ります
manage.pyのあるディレクトリから
python3 manage.py startapp blog
と打つだけです
としただけではpython2が起動してしまうので「無理!」ってお返事が返って来ます(何度もクセでやってしまった僕。。。)
python3
です間違えないように!
ちなみに、ボクは進化したpythonてことで「パイソンさん(3)」と呼ぶ事にしました。
間違えて「パイソン!」と呼び捨てると「は?何言ってるかわかんねー!」ってお返事をくれるのでしっかり「パイソンさん」と敬意を払って呼び出しましょう!
ご一緒に、せーのっ!「パイソンさ〜ん!」(舐めてる)
raspberrypi:~/dreamer $ python3 manage.py startapp blog
raspberrypi:~/dreamer $ ls
blog dreamer manage.py
blogディレクトリが出来ます。
dreamer/setting.py
を編集してblogを追加、使用言語とタイムゾーンの設定をします。
INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'blog',
]...
LANGUAGE_CODE = 'ja'
TIME_ZONE = 'Asia/Tokyo'...
ここでブログの通りにスーパーユーザー登録しようとすると
python3 manage.py createsuperuser
こんなエラーが出た。
You have 15 unapplied migration(s). Your project may not work properly until you apply the migrations for app(s): admin, auth, contenttypes, sessions.
Run 'python manage.py migrate' to apply them.
........(略)File "/usr/local/lib/python3.5/dist-packages/django/db/backends/sqlite3/base.py", line 296, in execute
return Database.Cursor.execute(self, query, params)
django.db.utils.OperationalError: no such table: auth_user
うん?auth_userが見つからないそうな、データベースSQLiteのエラー?
とりあえずググると
コマメにmigrateという作業が必用なそうで?
よくわからんっ!!!
最初からやり直してやってみる
わからんからとにかく全部消す!
aspberrypi:~ $ sudo rm -r dreamer
もっかいプロジェクト作る!
raspberrypi:~ $ django-admin startproject dreamer
今度はプロジェクトだけでmigrateする!
raspberrypi:~/dreamer $ python3 manage.py migrate
Operations to perform:
Apply all migrations: admin, auth, contenttypes, sessions
Running migrations:
Applying contenttypes.0001_initial... OK
Applying auth.0001_initial... OK
Applying admin.0001_initial... OK
Applying admin.0002_logentry_remove_auto_add... OK
Applying admin.0003_logentry_add_action_flag_choices... OK
Applying contenttypes.0002_remove_content_type_name... OK
Applying auth.0002_alter_permission_name_max_length... OK
Applying auth.0003_alter_user_email_max_length... OK
Applying auth.0004_alter_user_username_opts... OK
Applying auth.0005_alter_user_last_login_null... OK
Applying auth.0006_require_contenttypes_0002... OK
Applying auth.0007_alter_validators_add_error_messages... OK
Applying auth.0008_alter_user_username_max_length... OK
Applying auth.0009_alter_user_last_name_max_length... OK
Applying sessions.0001_initial... OK
とりあえずmigrateはできたっぽい?
で、今回はアプリを作らずこのままでサーバー起動するのかやってみる。
raspberrypi:~/dreamer $ sudo python3 manage.py runserver
Performing system checks...System check identified no issues (0 silenced).
September 01, 2018 - 00:04:31
Django version 2.1, using settings 'dreamer.settings'
Starting development server at http://127.0.0.1:8000/
Quit the server with CONTROL-C.
ん?ブラウザで開いてみる。
無理っぽ!!
※アドレスがlocalhostとなっているのはsshポートフォワードで接続しているから。じつは別のPCからアクセスしています。
runサーバーリファレンスを読むと、どうやらDjangoサーバーはテスト用なので自身からしか見えない仕様っぽい
django-admin と manage.py | Django documentation | Django
なるほど!
はじめての Django アプリ作成、その 1 | Django documentation | Django
にあるように
python manage.py runserver 0:8000
とすると他のPCからのアクセスも受け付けてくれるってさ。
やってみる
raspberrypi:~/dreamer $ sudo python3 manage.py runserver 0:8000
Performing system checks...System check identified no issues (0 silenced).
September 01, 2018 - 00:18:05
Django version 2.1, using settings 'dreamer.settings'
Starting development server at http://0:8000/
Quit the server with CONTROL-C.
[01/Sep/2018 00:18:10] "GET / HTTP/1.1" 200 16348
[01/Sep/2018 00:18:10] "GET /static/admin/css/fonts.css HTTP/1.1" 200 423
Not Found: /favicon.ico
[01/Sep/2018 00:18:11] "GET /favicon.ico HTTP/1.1" 404 1973
[01/Sep/2018 00:18:11] "GET /static/admin/fonts/Roboto-Bold-webfont.woff HTTP/1.1" 200 82564
[01/Sep/2018 00:18:11] "GET /static/admin/fonts/Roboto-Light-webfont.woff HTTP/1.1" 200 81348
[01/Sep/2018 00:18:11] "GET /static/admin/fonts/Roboto-Regular-webfont.woff HTTP/1.1" 200 80304
ブラウザでアクセスすると
おおおお〜〜〜!!!!ジャンゴー!!!
とりあえずやっとこさテストサーバーが起動したので今日はここまで。
いやはや、先が思いやられます。続く?のか?この日誌?
続↓