1. 程式人生 > >django-3 模型 ,生成表,資料操作

django-3 模型 ,生成表,資料操作

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表示失敗