Django之自帶ORM框架
阿新 • • 發佈:2017-06-23
數據 增加 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框架