CATEGORY 備忘録

DjangoとMySQLを接続する

DjangoとMySQLを接続した時の備忘録です。 MySQLの設定を確認 Django側の設定で必要な項目は、 データベース名 ユーザー名(権限を持っている) ユーザーのパスワード ホスト名 ポート番号 です。これらを実際に調べていきます。 MySQLサーバーへ入る

¥sでデータベースの情報を取得します。

ユーザー名:Admin ホスト名:loaclhost になります。 ユーザーの作成方法、権限を付与する方法などは、公式ドキュメントを参照してみてください。 【MySQL】公式マニュアル 作成したデータベース名は"DiaryApp"にしました。

Django側の設定 次は、Django側の設定です。 setting.pyに設定を足すのと、models.pyを作成します。

マイグレーション models.pyに書いた「モデル」をデータベースに反映させます。

MySQLに入って、正しくテーブルが作られているか確認してみます。

CentOS 7にMySQLをインストールする

はじめに

とやったあとの初期設定でハマったので備忘録。 初期パスワードの確認 rootでMySQLに入ろうとすると、パスワードが必要というエラーが出てしまうので、初期設定されているパスワードを確認する必要があります。

/var/log/mysqld.logに残っている、初期設定時のログからパスワードを確認します。

確認できたら、MySQLサーバーへログインし、初期設定のパスワードを変更しましょう。

変更したパスワードでMySQLに入れることを確認

パスワードの変更(追記) MySQLのパスワードポリシーにあったパスワードを設定していないと

というエラーが出るので追記。 パスワードポリシーの初期設定は以下の通り

Variable_name Value validate_password_check_user_name OFF validate_password_dictionary_file validate_password_length 8 validate_password_mixed_case_count 1 validate_password_number_count 1 validate_password_policy MEDIUM validate_password_special_char_count 1 参考:【Qiita】mysql5.7でパスワードを変更する

Djangoでmigrationのやり直しが上手くいかない

Djangoのmigrationをやり直したくなったけれど、色々試したら、

で psycopg2.errors.UndefinedColumn: column "<field名>" does not existといったエラーが出て、後戻りできなくなったりする。 僕みたいによく分かってない人は、一度全部消してからやり直したほうが絶対早い。 djangoでmigrateができない 下のコマンドは、同じSchemaのテーブルを全削除するコマンド。

これを実行してからマイグレーションすれば確実。

you cannot alter to or from M2M fields, or add or remove through= on M2M fields

で、

のエラーで苦しめられたので備忘録。 "Django migration error :you cannot alter to or from M2M fields, or add or remove through= on M2M fields"(stack overflow) 要は、DBを作る時に、古いテーブルが邪魔をしてmigrationできないよ! と言うことらしい。 上記リンクに飛ぶと、initial.pyでFieldを消す処理を加えると言う対応を紹介していたが、 面倒だったので、テーブルをいったん消去して、もう一度migrationをかけて解決した。

‘npm run serve’ができない〜nodeのバージョン管理〜

普段、何も考えずに〇〇 updateと打ち込んでしまっているため、その戒めとしての備忘録 ちゃんとバージョン管理ソフトは使いましょう。。。 今回ハマったエラーはこちら

vue create → npm run serveなので特にエラーを起こすような操作はしていません。 「babel」, 「webpack」と言った文字列が見えたのでおそらくnodeのバージョンの問題だろうと思って確認してみると、

いや、もうほんとLTSとかちゃんと見とかないとダメですね 笑 何も考えずにパッケージのアップデートをしたのは誰なんでしょうか 笑 nパッケージを導入 これまで素のnodeを使っていたため、パッケージ管理ソフトを入れることにしました。 nodeのバージョン管理にはnパッケージと言うものがあるらしいのでこれをインストール

n現在の安定版を確認してみると、v12だったため

として、nodeを安定版に変更すると、無事にnpm run serveを通すことができました。 めんどくさいけど、バージョン管理はするようにしよう。

子コンポーネントから親コンポーネントへのデータの受け渡し〜$emitを使って〜

Vueでは、コンポーネント間の関係はした図のように、ツリー状になっており、上から下へのデータの受け渡しは、propを使って行っていました。 ツリーの下から上にデータを渡すときは、少し大変なようで、親コンポーネントが子コンポーネントのイベントを購読することによって実現するようです。「購読」って何だ。って公式ドキュメントを読みながらした僕の理解はこんな感じ。 $emit()でカスタムイベントを定義できると行っておきながら、何の処理もしていないじゃないかといったツッコミどころは多いですが、とりあえずの理解のために概念図を書いてみました。 パワポとか使ってもっと綺麗な図にできたら良かったのですが、そこまでの気力はありませんでした。 ソースコード カスタムイベントを作って遊ぶために使ったソースコードです。 親コンポーネント(App.vue)

子コンポーネント(Checkbox.vue)

$emitを使ってみて 処理自体はとても単純なのですが、定義しなければいけないプロパティ名、イベント名などが多く、親コンポーネントと子コンポーネントを行き来していると訳が分からなくなって、頭がこんがらがってしまうという印象でした。 これは何度も使って慣れるしかないかも

Vue.jsにQuasar Frameworkを入れてみる

はじめに Vue.jsの使い方の最低限の部分は分かったので、次は、CSSフレームワークを導入して、開発を始めてみようと思い、試しに Quasar Framework 入れてみました。 なぜQuasarを選んだかは、公式ページが一番カッコ良かったから、です。 導入方法 やり方は二つ quasar cliを入れる vue cliにプラグインとしてquasarを入れる。 元々、vue cliを入れていたので、既存のVueプロジェクトにQuasarをプラグインとして入れる方法を選択。 まずは、Vueプロジェクトを作成していきます。すでにVue.jsの環境が整っていれば、

と打てば、<Project Name>プロジェクトが作成されます。 このプロジェクトに、プラグインとして、quasarを導入します。 vue cliで作成したプロジェクトのディレクトリ に移動し、vue addでQuasarを導入。

実行する時のコマンドはvue cliと同じ。

Vue.jsで快適な開発ライフを送りたい

VS Codeは、デフォルトで色々なショートカットキーがあったりして、特にプラグインなどを入れなくても、十分便利に使えるのですが、Udemyの講習やQiitaの記事ではプラグインが入っている前提で話が進んでいることが多いので、後から追加したプラグインや加えた設定を備忘録として残しておこうと思います。 コード整形 Vue.jsでは、HTMLタグに属性を追加して、動的な処理を加えていくのですが、何の設定もしないと、以下のようなHTMLタグが出来上がってしまいます。 このコードでは、属性が2つだけなので、何とか読めますが、これが3つ4つと増えてきたら読めた物ではありません。 タグが見切れる前に早く何とかしましょう。 参考にした記事はこちら↓ VSCodeでvueファイルのhtmlを自動フォーマットする方法 必要な情報だけが載っていてノーストレスで解決できました。 設定が終わったら、。.vueのコードを全選択して、Shift + option + Fで整形完了! (WindowsならCtrl + Alt + F) これならソースコードが右側に見切れることはありませんね