django 1.9版本建資料表過程:
環境:windows 、pycharm版本4.0、django版本1.9
2.設定setting.py
資料庫設定
databases =
}from django.db import models
class publisher(models.model):
name = models.charfield(max_length=30)
address = models.charfield(max_length=50)
city = models.charfield(max_length=60)
state_province = models.charfield(max_length=30)
country = models.charfield(max_length=50)
website = models.urlfield()
class author(models.model):
salutation = models.charfield(max_length=10)
first_name = models.charfield(max_length=30)
last_name = models.charfield(max_length=40)
email = models.emailfield()
headshot = models.imagefield(upload_to='/tmp')
class book (models.model):
title = models.charfield(max_length=100)
authors = models.manytomanyfield(author)
publisher = models.foreignkey(publisher)
publication_date = models.datefield()
4.在專案目錄下執行命令
新建sql檔案:
python manage.py makemigrations
$ python manage.py makemigrations
migrations for 'books':
0001_initial.py:
- create model author
- create model book
- create model publisher
- add field publisher to book
更新到資料庫中
在執行:python manage.py migrate
5.完成在資料庫中建立相應表。
mysql> show tables;
+----------------------------+
| tables_in_test |
+----------------------------+
| auth_group |
| auth_group_permissions |
| auth_permission |
| auth_user |
| auth_user_groups |
| auth_user_user_permissions |
| books_author |
| books_book |
| books_book_authors |
| books_publisher |
| django_admin_log |
| django_content_type |
| django_migrations |
| django_session |
| django_site |
+----------------------------+
15 rows in set (0.00 sec)
「每個資料庫表對應乙個類」這條規則的例外情況是多對多關係。在我們的範例模型中, book 有乙個 多對多字段 叫做 authors 。 該欄位表明一本書籍有乙個或多個作者,但 book 資料庫表卻並沒有 authors 字段。相反,django建立了乙個額外的表(多對多連線表)來處理書籍和作者之間的對映關係。
對應生成乙個books_book_authors對應關係表
我們並沒有顯式地為這些模型定義任何主鍵。除非你指定,否則 django 會自動為每個模型建立乙個叫做 id
的主鍵。每個 django 模型必須要有乙個單列主鍵。
django資料庫之建表
首先了解幾個知識 什麼是一對多,多對多,一對一 什麼是關聯查詢 什麼是主表,什麼是從表 外來鍵放的位置 正向查詢,反向查詢 各種設計模式下,怎麼查詢 一對多 班級表和學生表 乙個班級可以有多個學生,乙個學生屬於那個班級 一對一 學生表和學生資訊表 每個學生對應各自的學生資訊 多對多 學生表和課程表 ...
django 資料庫建表流程,與表結構
目錄建立表結構 多表關連的設定 自建立關聯表方法 自建表 和 manytomanyfield 聯合使用 databases import pymysql pymysql.install as mysqldb warnings mysql.w002 mysql strict mode is not s...
Django3 0 2版本資料表註冊模型
先前版本在admin註冊資料表 可以為兩種 common admin.py from django.contrib import admin from models import customer register your models here admin.site.register custo...