首页 > 代码库 > Django之自带ORM框架

Django之自带ORM框架

前言

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框架