Djangoで流行のウェブサイトを自作する
今時、YoutubeやInstagramなどを個人で作れて当たり前な時代な中どうやってウェブサイトを作られているのか疑問に思ったことはありませんか?そこで実際InstagramやYoutubeでも使われたとされるDjangoを利用して簡易的なSNSを制作する方法をご紹介します。動画投稿サイトの制作スキルをもとに作られています。これをもとに応用すればYoutubeと同レベルのサービスを展開することも可能です。この記事は有料ですが入った収益は動画投稿サイトForbindeの活動資金として全額使わせていただきます。
使用環境
今回使う環境は以下の通りです。
Django ==3.2
python ==3.7.3
Visual Studio Code
デフォルトではsqlite3ではありますが、このサイトの骨組みを利用して実際にサービスとして公開していく場合はsqlite3はDjango公式が非推奨しています。そのためmysqlやPostgreSQLを採用することをオススメします。django3.2ではdjango2.2と違いモジュールsixが反応しなかったり、staticfileの指定の仕方が異なっているので注意が必要です。
sixが反応しないのは、djangoが3.0にする際「今時python2 使う人なんていないしpython公式もpython3にしろとか言っているから2と3を繋げるmodule sixはいらないよね?」と言った感じでdjangoから消されたみたいです。もっともmodule six が必要な場面はSNSログインを実装するときに起きるぐらいなので、あまり遭遇するとは思いませんが...
実装するもの
SNSを作るにしてもサービスは何をどうゆう風に作っていくのかを考える必要があります。
今回は非常にシンプルなものとして文字だけを入力して画像を一枚まで投稿できる機能にしましょう。リストとしてはこんな感じです。
ユーザー作成機能
ログイン機能
ユーザー作成にて行うメール送信機能
投稿機能
の4つの機能を実装しましょう、これを抑えればInstagramやTwiiterなどのSNSや果てはYoutubeと同等レベルのものが作れます。この記事ではユーザー作成までを行います。
では実装してきましょう
プロジェクトの作成
まず好きなところにVisual Studio Codeで開きます。その次にメニューバーのターミナルからNew Terminal をクリックすると楽にコマンド入力ができます。
$ django-admin startproject プロジェクト名
入力が完了すると以下の画像のようにフォルダと必要なファイルが作成されます。
これだけでもサイトの確認が可能で以下のコマンドを入力することで実際に仮想環境で表示することが可能です。
$python manage.py runserver
これを入力すると以下の返事が返ってきます。
You have 18 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.
January 16, 2022 - 03:41:37
Django version 3.2.11, using settings 'blog.settings'
Starting development server at http://127.0.0.1:8000/
Quit the server with CONTROL-C.
特に「You have 18 unapplied migration(s). Your project may not work properly until you apply the migrations for app(s): admin, auth, contenttypes, sessions.」は赤文字で返ってきてびっくりすると思いますが、これは「まだデータベースを登録してないよ大丈夫?」という確認です。そのため無視しても問題はありません。
Starting development server at http://127.0.0.1:8000/
のところの「http://127.0.0.1:8000/」をコピー&ペーストもしくはMacだと⌘押しながらクリックを押すと以下のサイトが出てくると思います。
アプリケーションの作成
ターミナルから下記のコマンド入力するだけで簡単にできます。
ここから先は
¥ 1,100
最後までご購読ありがとうございます サービスに将来性や記事に価値を感じましたら、サポートしてください! 支援金は以下の通りに使われます 💻開発の継続 📃商標登録 📣宣伝 🤝 JASRACの提携 🤖サービスの運営維持 🎮 ゲーム会社との収益提携と維持