1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

vue2, Django, postgreSQL で開発する環境構築

Last updated at Posted at 2023-07-22

vue2, TypeScript(clas-component), vuetyfy, Django, postgreSQLで開発する、フロント・バックに分かれたシステムの環境構築的な奴です。

vueやDjangoをまったく触ったことない人や、プログラミングの勉強したいけど、何をしたらいいかわからない人向け作成しました。最低限形になっていて、拡張のしがいのあるコードをgitにあげているので、cloneしてもらえば、ある程度参考にしながら進められると思います。
ただ、新卒2年目が短い時間で作ったものなので、質の高いコードではないです。ご了承ください。

初期のコードはgitからcloneしてもらうことを想定しているので、もっと最初の環境構築からやりたい方はごめんなさい

流れ

※開発はwindowsを想定しているので、一応Macのコマンドとかも記載していますが、あっているかわからないので、動かなかたら調べてください
・postgreSQLの用意
・バックエンド
・フロントエンド
(エディタは好きなのを使ってください。僕はフロントVScode, バックPycharmでやってます。理由は今の現場がそうだからです。)
・終わり
下記を参考にいじってみてください!
https://qiita.com/OTA_nagisa/private/2dad312cc9022945a551

参考にさせていただいたサイト

DjangoとVue.jsで作るWEBアプリ
【Django REST Framework + Vue.js】APIからデータを取得し表示する
DjangoおよびDRFのチュートリアル
Vue/Vuex Typescript example: JWT Authentication | vuex-class & vuex-module-decorators
PostgreSQLの使い方

etc

postgreSQLの用意

postgreSQLインストール

まずは、「PostgreSQLの使い方」こちらのサイトを参考に、postgreSQlを使える状態にしてください。バージョンは最新のものでいいと思います。
具体的には、以下だけでよかった気がします。(たしか)
PostgreSQLのダウンロード及びインストール
PATHを設定する
WindowsサービスとしてPostgreSQLを開始または停止する

Macの方は、「【Mac】PostgreSQLのインストール」このあたりを参考にしてみて下さい。僕はMacを持っていないので、これで本当に行けるのかはわかりませんが、、、

データベース作成

以下を参考にデータベースの作成をします。わからなかったら、、、調べてください!!
psqlからSQLコマンドを実行する
データベースを作成する(CREATE DATABASE)

DBeaver インストール

データベースまで作成できたら、DBeaverをインストールします。
ほかに使い慣れているものがあればそちらでよいです。
自分がやったときに、どのサイトを参考にしたのか忘れましたが、
(初心者向け)DBeaverのインストール方法
こちらを参考に、インストールが完了し、MySQLを選ぶ前まで行ってください。

今回はPostgreSQLなので、新しい接続から
image.png
PostgreSQLを選択し、
image.png
下記のような設定をして(Database, ユーザー名, パスワードは、さっきインストールして、データベース作ったときのもの)
image.png

こんな感じのものが見つかれば終わり
image.png

できてなかったら知らない

あ、コミットは手動コミットをお勧めします。
間違えたアップデート文実行して、テストデータ壊したらめんどくさいので
image.png

バックエンド

まずはプロジェクトを置くフォルダを作っておいてください。フロントとバックをまとめておいておくところです。

Pythonをインストールしておいてください!
最新だとエラーになるかもしれないので、3.8とかがあんぱいかもしれません

バックエンドリポジトリこちらからclone

git clone https://github.com/OTAnagisa/vue2-drf-rest.git

ご自身のgitに紐づけたい場合は.gitファイルを削除して、git initして、下記のサイトとかを適当に参考にしてください!
https://qiita.com/miriwo/items/a7be71f6a238b09eda10
image.png

cloneして、なんやかんやしたら、そのフォルダをエディタで開きます。

そこで、Terminalを開いて、仮想環境に入ります。
powershellだと

python -m venv venv
venv\Scripts\activate.ps1

Macならこうらしい
python3 -m venv .venv
source .venv/bin/activate

頭に(venv)ってついたらOK
仮想環境に入ったら、

pip install -r requirements.txt

をしてインストール
requirements.txtがちゃんと整理できてなくて、足りないものがあったり、バージョンの関係でエラーになったりしたらすみません、、、
image.png

データベースとつなげる

最初に作成したpostgreSQLのデータベースとつなげます。

cloneしたコードの、./rest/settings.pyのDATABASESの中身を、作成したデータベース情報に合わせてください。
image.png

変更できたら、マイグレします。(マイグレって何ってなる方もいるかもしれませんが、後々コード触っていけばわかると思うので、何も考えなくていいです。)
ここもMacだとpython3ってやるんですかね?

最初にsequencesをマイグレ
python manage.py migrate sequences
もしくは
python3 manage.py migrate sequences

その後残りをマイグレ
python manage.py migrate
もしくは
python3 manage.py migrate

image.png

マイグレを行ったのち、DBeaverでスキーマを更新して
image.png

テーブルが作成されたらOKです。
image.png

少しですが、初期データも入っているので、
runserverして動し

python manage.py runserver
もしくは
python3 manage.py runserver

image.png

http://127.0.0.1:8000/api/news-list/
こちらのURLをたたいてもらえば、実際にAPIが動作し、responseを確認できると思います!
image.png
image.png
ちなみにユーザーは、僕の好きなドラマの、リッチマンプアウーマンからとってます。
ニュースの記事はchatGPTにお願いしました。

"pycharm"の設定

こっちらはやらなくてもOKですが、やっておいたほうがいいとは思ってます。
エディタ違ったら知りません

デバッグ設定

右上のEdit何たらを開いて
image.png

+ボタン押して
image.png

python選んで
image.png

こんな感じにしたらOK
image.png
scriptPath:フォルダ直下のmanage.py
parametars:runserver
PythonInterpter:よくわかんないけど適当なPythonのやつ

これで、runserverの右の矢印の右の虫みたいなやつを押して、ruserverされたらOK
だめだったら、PythonInterpterあたりを見直して、それでもだめだったら、ごめん
(terminalで起動してたruserverは止めてOK)
image.png

デバッグモードで起動することで、処理の途中で止めて、値を確認できるので、いろいろ便利
image.png

python console 設定

Fileからsettingsを開いて
image.png

consoleで検索して、python console の設定を画像のようにして、再起動
Environment valiables:
DJANGO_SETTINGS_MODULE=rest.settings;PYTHONUNBUFFERED=1
Python interpreter:
使用してるPythonのやつ
Workinig directory:
バックエンドフォルダのパス
Starting script:(こちらの変更は再起動しないと反映されないことがあります)
import django; django.setup()
import sys; print('Python %s on %s' % (sys.version, sys.platform))
sys.path.extend([WORKING_DIR_AND_PYTHON_PATHS])

image.png

これでバックエンド側は終わり!

フロントエンド

フロントエンドリポジトリこちらからclone

git clone https://github.com/OTAnagisa/vue2-drf-client.git

こちらもinitやらなんやらは適当にやってください!

エディタでフォルダーを開いて、terminalでnpm install

終わったらnpm start

出てきたlocalのurlをクリック(バックエンド起動しておく)
image.png

画面が表示されたらOK
image.png

とりあえずの画面と、少しのテストデータだけ追加してあります。
image.png

終わり!終了!

終わりに

商品一覧ページにいろいろ詰め込みました。
ここを参考に、いろいろ試してみてください!!
http://localhost:8080/#/ProductList
image.png

こんなことやったらよさそうというリストを作ってみました。
あまり説明をいろいろ書いているわけではないので、興味のある所から、調べつつ進めてみてください

わざと複雑になるようなテーブル構造にしたり、単純に時間がなくて作りが甘い部分があるため、そういったところはリファクタリングしていただけると、、、

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?