首页 > 代码库 > 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框架
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。