django-3 模型 ,生成表,資料操作
阿新 • • 發佈:2018-12-12
django
模型
每個模型都對映到單個數據庫表。
ORM:物件關係對映(Object Relational Mapping)
生成表結構
連線資料庫
由於Django內部連線MySQL時使用的是MySQLdb模組,
而python3中還無此模組,所以需要使用pymysql來代替
寫在django_jobapp下的__init__檔案中 保證啟動時就連上資料庫
import pymysql
pymysql.install_as_MySQLdb()
1.在子模組下新建包migrations(沒有則新建)
2.新子模組下建models檔案(在檔案中構建類 )
class UserInfo(models.Model): #自動建立一個id 為主鍵 自動增長 telephone=models.CharField(max_length=30) password=models.CharField(max_length=30) pub_time=models.DateTimeField()
3.在settings中新增連線資料庫的程式碼
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql',
'NAME': 'django_jobapp', 資料庫的名字(提前建好資料庫 不要建表 下面會自動對映成表)
'USER':'root',
'PASSWORD':'123456',
'HOST':'127.0.0.1',
'PORT':'3306'
}
}
4.執行程式碼
python manage.py makemigrations 生成遷移物件 python manage.py migrate 開始遷移
資料操作
在views.py檔案中匯入models
from . import models
獲取資料.all
jobs=models.job.objects.all().values('title','salary')
return HttpResponse(json.dumps(list(jobs),ensure_ascii=False)) #輸出json格式資料 中文
不加values jobs是一個物件 加上values jobs是物件裡的內容
根據需要獲取的欄位在values裡填寫
增加資料.create
job=json.loads(request.body) res=models.job.objects.create(**job) res就是正在插入的物件 **不能省
查詢資料.filter
qid = request.GET.get('id') #獲取根據欄位查詢的值
jobs = models.job.objects.filter(job_id=qid).values() #filter相當於where
刪除資料.delete()
qid = request.GET.get('id')
affected_rows=models.job.objects.filter(job_id=qid).delete()
print(affected_rows[0]) #1表示刪除成功 0表示失敗