ORM操作之Django后台管理、外键、QuerySet、查询sql语句、用户管理

摘要:
ORM操作Django后台管理app02 admin。pyfromdjango。attriblimportadminfromapp02importmodels#在此处注册您的模型。管理地点注册(models.UserInfo)app02模型。pyfromdjango。dbimportmodels#在此处创建您的模型
ORM操作

Django后台管理

  • app02的admin.py

      from django.contrib import admin
      from app02 import models
      
      # Register your models here.
      
      admin.site.register(models.UserInfo)
    
  • app02的models.py

      from django.db import models
    
      # Create your models here.
      
      # 创建的数据库表单名:app02_userinfo
      class UserInfo(models.Model):
          # 默认创建ID列,自增, 主键
          # 用户名列,字符串类型,指定长度
          # 字符串、数字、时间、二进制
          username = models.CharField(max_length=64)
          password = models.CharField(max_length=64)
          email = models.EmailField(max_length=64, null=True)
    
  • 工程同名目录的urls.py(默认存在)

    url(r'^admin/', admin.site.urls),

  • 命令行创建后台管理管理员账号、密码

    python manage.py createsuperuser

  • http://127.0.0.1:8000/admin/

外键

实现表关联,即一种约束,字段为ForeignKey,关联唯一键

app的models.py
	class UserInfo(models.Model):
	    # 默认创建ID列,自增, 主键
	    # 用户名列,字符串类型,指定长度
	    # 字符串、数字、时间、二进制
	    username = models.CharField(max_length=64)
	    password = models.CharField(max_length=64)
	    email = models.EmailField(max_length=64, null=True)
		# 参数to_field为主键,可以不写,默认也是连接主键		
	    user_group = models.ForeignKey("UserGroup", to_field="uid")

	class UserGroup(models.Model):
	    uid = models.AutoField(primary_key=True)	# 主键
	    caption = models.CharField(max_length=32)

执行数据库表操作后,表app02_userinfo中多一列user_group_id,而且是数字类型


user_info.html
	<span>{{ row.user_group.caption }}</span>
  • 一对多

      方式一:
      	需要两次数据库操作
      	app的views.py
      		models.UserInfo.objects.create(
      	        username='Spring1',
      	        password='123',
      	        email='springcom',
      	        user_group=models.UserGroup.objects.filter(uid=1).first()
      	    )
    
      方式二:(推荐)
      	app的views.py
      		models.UserInfo.objects.create(
      	        username='Spring',
      	        password='123',
      	        email='spring@163.com',
      	        user_group_id=1
      	    )
    

QuerySet

可以理解成列表,每一个元素是一个对象,对象中封装着对象的特征,可以通过点的方式操作;对象可以嵌套

user_list = models.UserInfo.objects.all()      
print(user_list)

<QuerySet [<UserInfo: UserInfo object>, <UserInfo: UserInfo object>, <UserInfo: UserInfo object>, <UserInfo: UserInfo object>, <UserInfo: Use
rInfo object>, <UserInfo: UserInfo object>, <UserInfo: UserInfo object>, <UserInfo: UserInfo object>]>

查询sql语句

user_list = models.UserInfo.objects.all()
print(user_list.query)

SELECT "app02_userinfo"."id", "app02_userinfo"."username", "app02_userinfo"."password", "app02_userinfo"."email", "app02_userinfo"."user_grou
p_id", "app02_userinfo"."user_type_id" FROM "app02_userinfo"

用户管理(课上练习)

  1. 用户组的增删改查
  2. 用户的增删改查
    1. 添加必须是模态对话框
    2. 删除必须是模态对话框
    3. 修改,必须显示默认值
  3. 比较好看的页面

免责声明:文章转载自《ORM操作之Django后台管理、外键、QuerySet、查询sql语句、用户管理》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇dotnet 获取程序所在路径的方法Dynamics AX 2012 R3 Demo 安装与配置下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

【工利其器】必会工具之(三)systrace篇(1)官网翻译

前言        Android 开发者官网中对systrace(Android System Trace)有专门的介绍,本篇文章作为systrace系列的开头,笔者先不做任何介绍,仅仅翻译一下官网的介绍。在后续的文章中再整理一份学习教程,以及笔者的实践经历。官网中对该工具的介绍文档路径为【https://developer.android.google...

谷歌chrome浏览器本地文件跨域配置不生效

- 最近下载easyui的demo到本地看看效果,查看grid时页面加载不出数据,报错; Access to XMLHttpRequest at 'file:///E:/ExtendPlugIn/EasyUI/jquery-easyui-1.8.6/demo/datagrid/datagrid_data1.json' from origin 'null'...

Linux Oracle 11g dataguard物理standby的配置

这两天研究了下oracle 11g dataguard 物理standby 功能,总体来说这个功能满足公司需求,好了,不多说了,以下是详细的配置过程。 主库: IP:192.168.77.5 主机名:nod1 ORACLE_SID=test ORACLE_BASE=/oracle/app/oracle ORACLE_HOME=/oracle/app/or...

小程序与WebRTC联姻能擦出怎样的火花?

欢迎大家前往腾讯云+社区,获取更多腾讯海量技术实践干货哦~ 本文由腾讯视频云终端团队发表于云+社区专栏 腾讯视频云终端技术总监,rexchang(常青), 2008 年毕业加入腾讯,一直从事客户端研发相关工作,先后参与过 PC QQ、手机QQ、QQ物联 等产品项目,目前在腾讯视频云团队负责音视频终端解决方案的优化和落地工作,帮助客户在可控的研发成本投入之下...

六、Django的orm之单表操作

Django模型层(一)单表操作 一、ORM ORM是“对象-关系-映射”的简称。(Object Relational Mapping,简称ORM) orm其实就是将类对象的语法翻译成sql语句的一个引擎 类对象 --- sql 类 -- 表 对象 -- 行 属性 -- 字段 原生sql和Python的orm代码对比: 二、Django连接数据库 在Dj...

Alfred Workflow

实用的 Alfred Workflow Alfred Workflow 介绍 alfred-pkgman-workflow 快速从各个软件仓库(maven, gradle 等等)中查找需要的软件包 AlfredHanziSourceWorkflow 快速从象形字典、汉语字典、说文解字等站点查询字源 AlfredGoogleTranslat...