(並行世界)Pythonでアプリつくる話 その2
前回の続きからでございます
プロジェクトの作成までは終わったので、ちょこちょこと設定していきます
前回、Djangoを使ってプロジェクト作成までしたので、ディレクトリ構成はこんな感じのはず
$ tree -L 1 . . ├── bin ├── include ├── lib ├── manage.py ├── pyvenv.cfg └── test_project $ tree -L 2 test_project test_project ├── __init__.py ├── settings.py ├── urls.py └── wsgi.py
いろいろファイルができているのでそれぞれの役割を説明し............ない! めんどくさいし!必要なときに調べたらいいじゃん! とりあえず大事なファイルは
manage.py
settings.py
この2つ! ということで、次に行きます
settings.py
色々設定したいので、その名の通りsettings.pyを見ていきます
ひとまずエディタでこれを開きます。 長々といろいろ書いてありますが、とりあえずタイムゾーンの設定をします サーバーっぽいですね
# Internationalization # https://docs.djangoproject.com/en/1.8/topics/i18n/ LANGUAGE_CODE = 'ja-JP' TIME_ZONE = 'Asia/Tokyo' USE_I18N = True USE_L10N = True USE_TZ = False
LANGUAGE_CODEとTIME_ZONEを変えます これはまぁ、分かりやすいやつ
USE_TZも変えた なんだこれ、、、TZはTimeZoneかな?
いろいろ調べてみると、TZはやっぱりTimeZoneでした 日時を取得するときとかに、USE_TZがtrueになっていると、タイムゾーン情報が日時情報とともに記録されるらしい でも、TimeZoneを使う場合はpytz(python用タイムゾーン変換ライブラリ)をつかってあげるべきらしいので、今日のところはFalseで進めます いろんなタイムゾーンからのアクセスをちゃんと管理するなら、ここはTrueでpytzを使うようにしよう(忘れるなよ、未来の私)
再開)
サーバーについてはいつのまにかそれっぽいものができてくるので、ここではサーバーで使用するデータベースの構築をする
データベース
サーバーで管理する情報は大きく分けて2通りの管理方法がある!(ぶっちゃけ、1つだ)
- テキストに書き込んでおいておく
- データベースを組む
迷うことなくデータベースを組みましょう 最近は便利なもので、簡単にセットアップできるようです
データベースと言えば、SQLiteやらMySQLやらPostgreSQLやらなにやらかんやらありますが、こういうテスト用みたいな軽量サーバーはSQLite一択ですね
さっそく入れましょう......
!!!?!?!?!
も
う
は
い
っ
て
る
!?
なんてこった.... 入っててよかった!! 堤真一の気持ちが今わかった
さっきのsettings.pyの中に最初っから書いちゃってますね ありがてぇ
# Database # https://docs.djangoproject.com/en/1.8/ref/settings/#databases DATABASES = { 'default': { 'ENGINE': 'django.db.backends.sqlite3', 'NAME': os.path.join(BASE_DIR, 'db.sqlite3'), } }
入っているとわかったらもう作るだけ! migrateしましょう!!!
....
migrate???
はい、migrateです
マイグレートといいます
migrateは、データベース内のデータを保持しつつ、構成し直せちゃう的なものです 細かいところはまた誰かが解説してくれているので追々
$ python3 manage.py migrate Operations to perform: Synchronize unmigrated apps: messages, staticfiles Apply all migrations: contenttypes, admin, sessions, auth Synchronizing apps without migrations: Creating tables... Running deferred SQL... Installing custom SQL... Running migrations: Rendering model states... DONE Applying contenttypes.0001_initial... OK Applying auth.0001_initial... OK Applying admin.0001_initial... 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 sessions.0001_initial... OK
こんな感じで完了です
はっっや!!!
すっげ!!!
ジャンゴさん半端ないっす
マジ半端ないっす
ありがとう、先人の皆様
プログラミングって、ほんと偉大な方々のお陰で誰でも学べるようになってるよね
すばらしい
でも、すっ飛ばしたところはちゃんと理解しておかないと痛い目を見るのもまた、乙だよね
サイトを立ち上げるぞー
実はジャンゴさん、はじめてのサイト的なものを仕込んでおります どこまでも気が利く ありがとう
$ python3 manage.py runserver
これでサーバーが動き出す
Performing system checks... System check identified no issues (0 silenced). December 14, 2017 - 23:55:53 Django version 1.8, using settings 'test_project.settings' Starting development server at http://127.0.0.1:8000/ Quit the server with CONTROL-C.
いや、この速さはもはやシャア・アズナブル.....
立ち上がったサイトをみるには下記のアドレスを適当なブラウザに入力するだけ
はい簡単
しかもめっちゃこれから頑張ってね的なこと言ってる
ジェントルすぎるわ
興奮冷めやらぬ感じですが、今日はここまで