china_mの日記

ブログ初心者です。一応エンジニアをしています。

Spring Bootでアプリを制作したときに出たエラー①

Spring Bootで民宿予約アプリを作ろう | プログラミング学習サイト【侍テラコヤ】 (sejuku.net)

↑上記のサイトでアプリを制作していた時に出たエラーを自主学習用にまとめます。

 

コピペすれば一瞬で解決できるかと思うのですが、自分の学習のため、一言一句手打ちで進めています。

7章 管理者用の民宿一覧ページを作成しよう

で、最終的な画面がこのようになるはずですが、

見本画面

作成しているアプリを実行したところ、以下のエラーが出ました。

エラー画面

<エラー解決法>
House.java(エンティティクラス)の中で

import java.sql.Timestamp → import java.security.Timestamp

sqlを呼び出せていなかった様ですね・・・

private String postalCode → private String postal_code

呼び出すカラム名が間違っていたら呼び出せませんよね・・・

Djangoアプリを作成時、環境作成でエラーにはまった話

仮想環境の作成、中に入れた!

  • djangoなど必要なパッケージもインストールできた!
  • プロジェクトを作成していくぞー!

  の時に発生したエラーです。

  > django-admin startproject config

  Fatal error in launcher: Unable to create process using '"c:\program files   (x86)\python 3.7.3\python.exe"  "C:\Program Files (x86)\Python 3.7.3\Scripts\django-    

  admin.exe" startproject config'

  Goggle翻訳で直訳すると

  「ランチャーの致命的なエラー:'"Program files(X86)のpython 3.7.3 python.exe は

  "Program Files(X86)Python  3.7.3 \Scripts\ django-admin.exe を使用してプロセスを  

  作成できません'」

  • django-admin を実行しなくても Django プロジェクトを作成することは可能

  > python -m django startproject config

  ただし、バージョン等気を付けること。(pythonを2つ以上インストールしている  

  場合)

https://daeudaeu.com/python-django-admin/

daeudaeu.com

 

 

自分用のメモとして残しています。

根本的な解決としては、環境変数の変更などが必要と思われます。

Djangoを勉強したのでアプリを作成してみることにした

Djangoを勉強して、Web上でアプリを起動することに成功したので、趣味がてらアプリを作成してみようと思いました。

以下のサイトを参考にSNSアプリ的なものを作っていきます。

https://note.com/saito_pythonista/n/n6550f5c2a07b

note.com

基本的に上記のサイト通りにいくと作成できると思いますが、自分が調べたところ、一瞬詰まったところをメモがてら残していきます。

   :VSCodeでフォルダを開くしたところ

  • django-allauth ライブラリについて

ログイン、ログアウト、ユーザ登録(管理)、パスワード設定など、ユーザー認証に必要な機能が備わっている。

ただし使用する場合、規定のURLパターンで各機能がルーティングされているので注意

https://note.com/shingo_takagi/n/nf024f6865897

note.com

  > pip install django-allauth

  • models.CharField 文字列が入る
  • models.TextField 文章が入る
  • models.ForeignKey(外部キー) 一対多のリレーションになる。

  Userでヒットしたものが数件出力される的な...

  参照しているオブジェクトが削除されたら一緒にオブジェクトを削除する

  例:ブログの記事を消したらコメントも消す

  • models.DateTimeField 日時が入る
  • from django.urls import reverse_lazy

  役割:ページ内からURLを取得するためのメソッド

  reverse との使い分け:クラスベースビュー内の変数には「reverse_lazy」を使う

  • get_success_url(self, **kwargs)

  引数に2個アスタリスクをつけると、呼び出し時に複数のキーワード引数を辞書と

  して受け取ることが出来る。

  アスタリスクがついていれば名前はさほど重要ではない。

  • ManyToManyField 多対多

  サッカー選手とポジションを例として考えると

   ・選手は複数のポジションが出来る

   ・ 同じポジションの選手は複数存在

  • super().get(request, *args, **kwargs)

  super()を使ってクラスのメソッドを呼び出す

  class LikeHome(LikeBase):  # LikeBaseを継承

  super(【今のクラス】, self).【呼び出すメソッド】

uxmilk.jp

  • connection.0.following.all

  0の部分はインデックス番号

  viewにてget_or_create メソッドを使用しているので、インデックス番号を指定する

  必要あり

  view → connection[0]  template → connection.0

  .like-btn → いいねを押す前のボタン

  .add-color → いいねが点灯する色

  • Bootstrapとは(navbarの使い方)

  WEBサイトやWEBページを効率よく開発するためのWEBフレームワーク

  • 一通りコードを打ち終わったところで、動かしてみたときに発生したエラー

  snsapp.Post: (models.E015) 'ordering' refers to the nonexistent field 'created_at'.

  エラー分のmodels.E015と'ordering'、'created_at'から snsapp>mofrls.py の Meta

  部分を表していると推測

  ordering 属性はオブジェクトのデフォルトの並び方を変更するときに使う。

  ハイフンをつけると降順になる(つけなければ昇順)

  よく見たら、タイポしていた...。

  create_at = models.DateTimeField(auto_now_add = True)

  ・・・

  class Meta:

    ordering = ["-created_at"]

  • URLは出たけど、OperationalError が出た

  → python manage.py makemigrations(db.sqlite3を削除した場合)
  → python manage.py migrate