RUVIDEO
Поделитесь видео 🙏

python djangoでデータベースとモデルの使い方

djangoでは初期でsqliteのパッケージがインストールされます。sqliteはポータブルのデータベースマネジメントシステムで、MySQLやPostgresのようにデータベースの管理プログラムをインストールする必要がないので、開発の際にはとても楽に扱えます。

ただし、実際にアプリを公開する段階では、セキュリティの面から、上記に挙げたようなMySQLやPostgresのデータベースと使うことをお勧めします。

データベースのタイプを設定
setting.pyを開いてみましょう。

DATABASES = {
'default': {
'ENGINE': 'django.db.backends.sqlite3',
'NAME': os.path.join(BASE_DIR, 'db.sqlite3'),
}
}
ここに記載されているように、デフォルトでsqlite3が使用されています。

データベースにアプリの変更を反映させる。
djangoのアプリを起動してみましょう。

python manage.py runserver
ここでYou have 17 unapplied migration(s)という表示がありますね。これはdjangoのアプリでデータベースに反映されていないデータがあるということです。では下のコードでデータベースを最新のものにしましょう。

python manage.py migrate
これで、ユーザー情報などのデータのテーブルをデータベースに作成します。

次に、PgAdminやMySQLのWorkBench等のGUIツールがないのでデータベースの中身がどうなっているのか見ることができません。

ここで、スーパーユーザーを作成して、データベースの中身を見てみましょう。

python manage.py createsuperuser
名前、Eメール、パスワードの入力をします。

ではrunserverのコマンドでアドミンのページを見てみましょう。

URLはhttp://127.0.0.1:8000/adminです。

ここで、すべてのデータベースのテーブルが表示されるようになります。

またユーザーの作成や管理もここで行えます。ワードプレスのダッシュボードのようなものですね。

試しに新しいユーザーを作ってみましょう。

models.pyの使い方
ここでpythonのクラスを作成し、それがデータベースのテーブルと同じ役目をすることになります。これがあるおかげで、クエリの言語をべんきょうして、SQLからデータベースをいちいち作る手間が省けました。素晴らしい!

これからpythonのクラスを作成してそれらが、データベースのテーブルとして作成されます。

#models.py
class Car(models.Model):
car_name = models.CharField(max_length=200, null=True)
year = models.IntegerField(max_length=4, null=True)
price = models.IntegerField(max_length=20, null=True)
date_created = models.DateTimeField(auto_now_add=True, null=True)
新しいモデルを作成したら、データベースにテーブルを作る準備をします。

python manage.py makemigrations
python manage.py migrate
migrationのフォルダーの中に新しいファイルがありますね。これを今度はデータベースに反映させました。

データベースのテーブルをアドミンに登録する
アプリの中(アドミンではないです)のadmin.pyを開き作ったテーブルを登録しましょう。

from .models import Car
admini.site.register(Car)
ではdjangoのアドミンからテーブルが反映されたことを確認してみましょう。

ここで、テーブルに追加したデータがかobjectとして表示されていますね。これを解消するために、__str__を返してあげます。

#models.py
class Car(models.Model):
BRAND = (
('トヨタ', 'トヨタ'),
('スバル', 'スバル'),
)
brand = models.CharField(max_length=200, null=True, choices=BRAND)
car_model = models.CharField(max_length=200, null=True)
year = models.IntegerField(null=True)
price = models.IntegerField(null=True)
date_created = models.DateTimeField(auto_now_add=True, null=True)
def __str__(self):
return self.name
djangoは自動でそれぞれのアイテムにIDをつけてくれます。これは全く同じタイプのデータがある場合に見分けをつける為です。

これからリレーショナルのデータベースを作成するにあたり、二つテーブルを作ってみましょう。

class Customer(models.Model):
customer_name = models.CharField(max_length=200, null=True)
address = models.CharField(max_length=200, null=True)
phone =models.CharField(max_length=200, null=True)
date_created = models.DateTimeField(auto_now_add=True, null=True)
class Order(models.Model):
STATUS = (
('検討中', '検討中'),
('購入済み', '購入済み')
       ('修理中', '修理中')    
)
#customer_name =
#car_model =
date_created = models.DateTimeField(auto_now_add=True, null=True)
status = models.CharField(max_length=200, null=True, choices=STATUS)
では、同じようにmakemigrationsとmigrateのコマンドを繰り返し、下のようにアプリのadmin.pyに作ったテーブルを登録しましょう。

from .models import *
admin.site.register(Car)
admin.site.register(Customer)
admin.site.register(Order)

?最新の記事を見る
https://asameshicode.com

?おすすめプレイリスト
???Vue3入門基礎編https://www.youtube.com/watch?v=qSyiUU81nrE&list=PLEkPa8sj2jHWBu-AGjHDkmsR3xMePJ_xg
???JavaScriptの基本講座 https://www.youtube.com/watch?v=UXobV60xt70&list=PLEkPa8sj2jHXsgOvv6J3JBEX5oXUUAOVx
???Pythonの基本講座 
https://www.youtube.com/watch?v=Dx3v6GaS6y8&list=PLEkPa8sj2jHUo_fCooNHzM7LZN5PqxQ1z
???Djangoの使い方 https://www.youtube.com/watch?v=7jxEblnfksE&list=PLEkPa8sj2jHU2VzOh2OcPyfWLaBqFg92D

Что делает видео по-настоящему запоминающимся? Наверное, та самая атмосфера, которая заставляет забыть о времени. Когда вы заходите на RUVIDEO, чтобы посмотреть онлайн «python djangoでデータベースとモデルの使い方», вы рассчитываете на нечто большее, чем просто загрузку плеера. И мы это понимаем. Контент такого уровня заслуживает того, чтобы его смотрели в HD 1080, без дрожания картинки и бесконечного буферизации.

Честно говоря, Rutube сегодня — это кладезь уникальных находок, которые часто теряются в общем шуме. Мы же вытаскиваем на поверхность самое интересное. Будь то динамичный экшн, глубокий разбор темы от любимого автора или просто уютное видео для настроения — всё это доступно здесь бесплатно и без лишних формальностей. Никаких «заполните анкету, чтобы продолжить». Только вы, ваш экран и качественный поток.

Если вас зацепило это видео, не забудьте взглянуть на похожие материалы в блоке справа. Мы откалибровали наши алгоритмы так, чтобы они подбирали контент не просто «по тегам», а по настроению и смыслу. Ведь в конечном итоге, онлайн-кинотеатр — это не склад файлов, а место, где каждый вечер можно найти свою историю. Приятного вам отдыха на RUVIDEO!

Видео взято из открытых источников Rutube. Если вы правообладатель, обратитесь к первоисточнику.