雑多な技術系メモ

自分用のメモ。内容は保証しません。よろしくお願いします。

djangoのメモ

django mysql

pip install django==2.1.7
pip install pymysql

manage.pyかsetting.pyの一番上に

import pymysql
pymysql.install_as_MySQLdb()

setting.pyに

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.mysql', # 変更
        'NAME': 'database_name', # プロジェクトで使用するデータベース名
        'USER': 'root', # パソコンにインストールしたMySQLのユーザー名
        'PASSWORD': '', # 同上。そのパスワード
    }
}

django shell

>>> python manage.py shell

from myapps.models import MyModel 

credentials

https://www.django-rest-framework.org/api-guide/testing/

test

jwtで単体テストをする時のメモ

jwtでテストユーザーを作成してからテストを始める

サンプルコード

参考文献

https://stackoverflow.com/questions/47576635/django-rest-framework-jwt-unit-test

jsonで返す

from django.http import JsonResponse

def hogeView(request):
    hoge = {}

    # データのセットとか
 
    return JsonResponse(hoge)

test時

エラー

django.urls.exceptions.NoReverseMatch: Reverse for 'insert_memo' not found. 'insert_memo' is not a valid view function or pattern name.

testしたいappのurlsの urls.pyにapp_nameとurlpatternsにnameの追加する必要がある

urlpatterns = [
    path('', views.ListMemo.as_view()),
    path('<int:pk>/', views.DetailMemo.as_view()),
    path('insert_memo/', views.insert_memo, name="insert_memo"),
    path('get_memos/', views.get_memos, name="get_memos"),
]

app_name = "memos"

Metaクラス

以下、参照 メタクラスは「「class文の持つ定義する機能」を定義する機能」があるのです。 「「定義する機能」を定義する機能」というのがメタと名付けられている所以です。 https://teratail.com/questions/87695

ユーザーを作る時のメモ

Django Login/Logout Tutorial (Part 1) - William Vincent

djangoの自作ライブラリの場所について

  • すべてのアプリ全体で使うならsetting, urlsと同じところに
  • 各アプリで使うなら各アプリのディレクトリ配下

https://teratail.com/questions/5316

djangoのテストについて

https://docs.djangoproject.com/ja/3.0/intro/tutorial05/

djangoの設定

https://qiita.com/okoppe8/items/e60d35f55188c0ab9ecc

pandasかどうかの確認(testのページにつくる)

https://qiita.com/hatorijobs/items/8246e90db6b18d75338c