django 模型之 ORM 物件關係對映(一)

2022-06-23 07:21:10 字數 3397 閱讀 3580

所謂物件關係對映,就是將資料庫的一些名字與python中的一些名字相對應,表名-->類名,欄位-->屬性,操作(增刪改查)-->方法。這樣,我們就可以通過對python**的編輯來對資料庫進行操作。

流程:建立models,通過models建立遷移檔案(makemigrations),通過遷移檔案對映到資料庫中。

book/models.py

from django.db import

models

#create your models here.

class

student(models.model):

#欄位對映,資料庫中是male,female,後台顯示的是男,女

choices=

#建立資料庫中的字段

name=models.charfield(verbose_name='

姓名',max_length=20,unique=true)

age=models.charfield(verbose_name='

年齡',max_length=10)

gender=models.charfield(verbose_name='

性別',max_length=10,choices=choices,default='

male')

is_deleted=models.booleanfield(default=false)

introduce=models.textfield()

def__str__

(self):

return

self.name

class

meta:

#verbose_name_plural='新聞'

#verbose_name="新聞列表"

#修改排列的順序,這句是靠id從大到小排序

ordering=['

-id'

] db_table = '

student

'

book/admin.py

from django.contrib import

admin

from .models import

student

#register your models here.

#在後台顯示相關資訊

class

studentadmin(admin.modeladmin):

list_display = ['

id','

name

','age

','gender

','is_deleted

','introduce']

#將模型進行註冊

admin.site.register(student,studentadmin)

有了這兩個,輸入:

python manage.py makemigrations

python manage.py migrate

會在migrations下生成乙個檔案:

具體內容如下:

from django.db import

migrations, models

class

migration(migrations.migration):

dependencies =[

('book

', '

0001_initial'),

]operations =[

migrations.createmodel(

name='

student',

fields=[

('id

', models.autofield(auto_created=true, primary_key=true, serialize=false, verbose_name='id'

)), (

'name

', models.charfield(max_length=20, unique=true, verbose_name='姓名'

)), (

'age

', models.charfield(max_length=10, verbose_name='年齡'

)), (

'gender

', models.charfield(choices=[('

male

', '

男'), ('

femal

', '

女')], max_length=10, verbose_name='性別'

)), (

'is_deleted

', models.booleanfield(default=false)),

('introduce

', models.textfield()),

],),

migrations.deletemodel(

name='

articles',),]

我們要進入後台管理介面需要設定使用者名稱和密碼:

python manage.py createsuperuser

輸入使用者:admin 密碼:12345678 郵箱可以不填

瀏覽器輸入127.0.0.1:8000/admin,輸入賬號密碼後進入到管理介面,

點選students,會有相應表的資訊:

最後,我們將資料庫裡面的內容傳到前台頁面:

book/views.py

from .models import

student

from django.shortcuts import

render

defindex(request):

student_list=student.objects.all()

context=

return render(request,"

index.html

",context=context)

index.html

"en

">

class="

content

">}}

最終效果:

Django模型ORM使用 FQ物件

在django中比較倆個屬性的方法使用f物件會更簡單快捷.f物件使用方法 from django.db.models import f f 屬性 例句 from django.db.models import f from django.db.models import bookinfo 匯入模型類...

django之ORM物件關係對映

orm 物件關係對映,物件關係對映的意思就是在python中 類對應資料庫中的 物件對應 中的記錄。屬性對應 中的字段。orm通過讓我們程式設計師使用物件導向的思想來運算元據庫,不用直接再編寫sql語句。提高開發效率。資料建模 簡單地說就是使用資料庫來描述我們的業務邏輯。teacher表 name ...

Django之物件導向ORM

django模型層orm的乙個強大之處是對於模型的支援,該技術將python物件導向的程式設計方法與資料庫面向關係表的資料結構有機地結合。django支援三種風格的模型繼承。抽象類繼承 父類繼承自model.model,但不會在底層資料庫生成相應的資料表。父類屬性列儲存在其子類的資料表中。抽象類繼承...