Django视图之ORM连表操作一
1 项目路径结构树
2 models创建类
from django.db import models class UserType(models.Model): ''' 用户类型 ''' title = models.CharField(max_length=12) class UserInfo(models.Model): ''' 用户表 ''' name = models.CharField(max_length=16) age = models.IntegerField() ut = models.ForeignKey('UserType')
CharField :char类型
IntegerField: int类型
ForeignKey: 关联表
3 检测app是否注册项目
添加app01
4 初始化数据库
初始化db.sqlite3数据库
1.创建表结构
>>python manage.py makemigrations Migrations for 'app01': app01\migrations\0001_initial.py - Create model UserInfo - Create model UserType - Add field ut to userinfo
2. 初始化数据库
>> python manage.py migrate Operations to perform: Apply all migrations: admin, app01, auth, contenttypes, sessions Running migrations: Applying contenttypes.0001_initial... OK Applying auth.0001_initial... OK Applying admin.0001_initial... OK Applying admin.0002_logentry_remove_auto_add... OK Applying app01.0001_initial... OK Applying contenttypes.0002_remove_content_type_name... OK Applying auth.0002_alter_permission_name_max_length... OK Applying auth.0003_alter_user_email_max_length... OK Applying auth.0004_alter_user_username_opts... OK Applying auth.0005_alter_user_last_login_null... OK Applying auth.0006_require_contenttypes_0002... OK Applying auth.0007_alter_validators_add_error_messages... OK Applying auth.0008_alter_user_username_max_length... OK Applying sessions.0001_initial... OK
5 创建表数据
1) urls映射关系
urlpatterns = [ url(r'^create_data/', views.create_data), ]
2) 创建视图函数
from django.shortcuts import render,redirect,HttpResponse from app01 import models # Create your views here. def create_data(request): '''创建书籍''' #models.UserType.objects.create(title='普通用户') #models.UserType.objects.create(title='白金用户') #models.UserType.objects.create(title='砖石用户') '''创建用户''' #models.UserInfo.objects.create(name='alex',age=32,ut_id=1) #models.UserInfo.objects.create(name='egon',age=42,ut_id=2) #models.UserInfo.objects.create(name='yuan',age=32,ut_id=3) #models.UserInfo.objects.create(name='naza',age=32,ut_id=1) '''获取数据''' result = models.UserInfo.objects.all() for obj in result: print(obj.name,obj.age)
return HttpResponse('...')
''' alex 32 egon 42 yuan 32 naza 32 '''
跨表操作获取数据
result = models.UserInfo.objects.all() for obj in result: print(obj.name,obj.age,obj.ut.title) alex 32 普通用户 egon 42 白金用户 yuan 32 砖石用户 naza 32 普通用户
6 访问初始化数据
http://127.0.0.1:8000/create_data/
Django视图之ORM连表操作一的更多相关文章
- Django框架06 /orm多表操作
Django框架06 /orm多表操作 目录 Django框架06 /orm多表操作 1. admin相关操作 2. 创建模型 3. 增加 4. 删除 5. 修改 6. 基于对象的跨表查询 7. 基于 ...
- Django框架05 /orm单表操作
Django框架05 /orm单表操作 目录 Django框架05 /orm单表操作 1. orm使用流程 2. orm字段 3. orm参数 4. orm单表简单增/删/改 5. orm单表查询 5 ...
- Django之模型---ORM 多表操作
多表操作 创建表模型 from django.db import models # Create your models here. class Author(models.Model): nid = ...
- django框架基础-ORM单表操作-长期维护
############### 单表操作-添加数据 ################ import os if __name__ == '__main__': os.environ.set ...
- Django之模型---ORM 单表操作
以上一随笔中创建的book表为例讲解单表操作 添加表记录 方式一 # create方法的返回值book_obj就是插入book表中的python葵花宝典这本书籍纪录对象 book_obj=Book.o ...
- python django基础五 ORM多表操作
首先在创建表的时候看下分析一下 1.作者表和作者详细地址表 一对一关系 理论上谁都能当主表 把Author设置成主表 au=models.OneToOneField(to='AuthorDetail ...
- Django 学习 之ORM多表操作
一.创建模型 1.模型关系整理 创建一对一的关系:OneToOne("要绑定关系的表名") 创建一对多的关系:ForeignKey("要绑定关系的表名") 创建 ...
- django框架基础-ORM跨表操作-长期维护
############### 一对一跨表查询 ################ import os if __name__ == '__main__': os.environ.setde ...
- Django视图之ORM数据库查询操作API
查询表记录 查询相关API 操作:models.表名.objects.方法() all(): 查询所有结果 filter(**kwargs): 它包含了与所给筛选条件相匹配的对象 get(**kwar ...
随机推荐
- HDOJ(HDU).1284 钱币兑换问题 (DP 完全背包)
HDOJ(HDU).1284 钱币兑换问题 (DP 完全背包) 题意分析 裸的完全背包问题 代码总览 #include <iostream> #include <cstdio> ...
- 2-17作业 数据库和shell综合练习
1. 使用shell把“12306用户名和密码库-不要使用记事本打开会卡死-解压后可使用word或ultraedit打开.rar”中的所有记录成生sql语句,然后把sql导入数据库,成一个uPwd_1 ...
- 关于JavaScript的沙箱模式
从语言学的角度上来说,允许代码无节制地使用全局变量,是最错误的选择之一.而更可怕的,就是一个变量"可能"成为全局的(在未知的时间与地点).但是这两项,却伴随JavaScript这门 ...
- Consul 入门
1. 什么是Consul? Consul 有很多组件,对于整体来说,它是一个服务发现和服务配置的工具,它提供了一下特性: 服务发现 健康检查 KV存储 多数据中心 2.安装Consul 以下是在 Ce ...
- 洛谷P3935 Calculating (莫比乌斯反演)
P3935 Calculating 题目描述 若xx分解质因数结果为\(x=p_1^{k_1}p_2^{k_2}\cdots p_n^{k_n},令f(x)=(k_1+1)(k_2+1)\cdots ...
- [zabbix]zabbix分区表操作步骤
Q&A: 1.mul key: . 如果Key是空的, 那么该列值的可以重复, 表示该列没有索引, 或者是一个非唯一的复合索引的非前导列 . 如果Key是PRI, 那么该列是主键的组成部分 . ...
- JS如何判断是不是iphoneX
function isIphoneX(){ return /iphone/gi.test(navigator.userAgent) && (screen.height == 812 & ...
- 浏览器发送URL的编码特性
转载自:http://blog.csdn.net/wangjun_1218/article/details/4330244 浏览器发送URL的编码特性 尽管有很多规范URL的标准,例如RFC 3987 ...
- 子字符串substring 问题 - KMP 字符串匹配算法备忘录
本文为自己对KMP的理解. 对KMP很好的介绍可以参考 http://www.cnblogs.com/yjiyjige/p/3263858.html 本文为对这篇文章的提炼和补充. KMP算法基本思想 ...
- 51Nod 1003 阶乘后面0的数量 | 思维
题意:n的阶乘后面0的个数,如果直接算出阶乘再数0的数量一定会超时的. 因为10=2*5,所以求出5贡献的次数就行. #include "bits/stdc++.h" using ...