1. 程式人生 > >Django之自帶ORM框架

Django之自帶ORM框架

數據 增加 tle 執行 max 模板 logs big backend

前言

Django的工作流程

1、客戶端發送請求到達 URL
2、URL把客戶端請求轉發給請求函數
3、視圖函數 使用原生SQL或者ORM去數據庫拿到數據進行渲染(模板+數據渲染)
4、return 返回給客戶端

Django大而全 本文主要介紹Django的ORM框架

一、使用Django的ORM

1、創建數據庫 (註意設置 數據的字符編碼)

create database day70 default character set utf8 collate utf8_general_ci;


2、修改project中的settings文件中設置 連接 MySQL數據庫(Django默認使用的是sqllite數據庫)

DATABASES = {
    default: {
    ENGINE: django.db.backends.mysql,
    NAME:day70,
    USER: eric,
    PASSWORD: 123123,
    HOST: 192.168.182.128,
    PORT: 3306,
    }
}

3、修改project 中的__init__py 文件設置 Django默認連接MySQL的方式

import pymysql
pymysql.install_as_MySQLdb()

二、操作表

1、在APP models中定義類(開始創建表)

from django.db import models

# Create your models here.

class user_info(models. Model):
    nid=models.BigAutoField(primary_key=True)
    user=models.CharField(max_length=32)
    password=models.CharField(max_length=64)
    age=models. IntegerField(default=1)
    ug
=models.ForeignKey(UserGroup,null=True) class UserGroup(models.Model): title=models.CharField(max_length=32)

在CMD或者Pycharm的Terminal執行

python manage.py makemigrations
python manage.py migrate

作用:

在app1\migrations文件下
python manage.py makemigrations 生成配置文件(記錄)
python manage.py migrate 生成SQL語句

2、在APP models中修改類(開始修改表)

class user_info(models. Model):
    nid=models.BigAutoField(primary_key=True)
    user=models.CharField(max_length=32)
    password=models.CharField(max_length=64) #如果表中有數據之後增加一列 要麽設置可以為空要麽設置默認值


執行刷新命名

python manage.py makemigrations
python manage.py migrate

三、操作表中的數據行

使用 Django創建好了表就可以在視圖函數中操作數據庫中數據行了

1、單表數據行操作

   新增數據
    models.UserGroup.objects.create(title="開發部")
    models.user_info.objects.create(user="劉娟",passwprd="456",age=24,ug_id=1)
    ug_id(ug是外鍵代表的是一行數據,所以要寫_id)

   查找返回queryset類型的對象(列表)
    user_list=models.user_info.objects.all()
    user_list = models.user_info.objects.filter(nid=1)
    user_list = models.user_info.objects.filter(nid__gt=1) #神奇雙下劃線 大於
    user_list = models.user_info.objects.filter(nid__lt=1) #神奇雙下劃線 小於
   刪除
    user_list = models.user_info.objects.filter(nid__lt=1).delete()
   更新
    user_list =models.UserGroup.objects.filter(id=3).update(title=融資部)

Django之自帶ORM框架