一、在django后台admin管理页面添加自己增加的表结构

  通过终端命令:python3 manage.py makemigrations, python3 manage.py migrate

  我们在Django自带的后台管理页面可以看到Django自动生成表结构,那么要是想成自己的表结构需要这么做:

  首先web应用的models.py文件里面配置自己的数据库表,例如下面要建一张UserInfo表,并且用UserInfoAdmin指定后台表详情 :

   

class UserInfo(models.Model):
username = models.CharField(max_length=50)
password = models.CharField(max_length=50)
email = models.CharField(max_length=50)
userType = models.ForeignKey(UserType)#在上面声明过,所有可以直接写不加引号 class Meta:
verbose_name = '用户info'
verbose_name_plural = verbose_name # def __unicode__(self):#python2中使用
def __str__(self): # 这个方法类比打印对象一样自定义打印,list_display = ('name', 'age')会覆盖此方法效果
return '[username: %s, password: %s, email: %s]'%(self.username, self.password, self.email) class UserInfoAdmin(admin.ModelAdmin):
list_display = ('username', 'password', 'email')
search_fields = ('username', 'email')
list_display_links = ('password',)# which cannot be used unless 'list_display_links' is set.
list_editable = ('username','email',)

  写完之后我们只需要在admin.py里面注册就好了

from django.contrib import admin

# Register your models here.
from app01 import models admin.site.register(models.UserInfo, models.UserInfoAdmin) # admin.site.register(models.UserGroup)
# admin.site.register(models.Asset)

二、models相关操作

  1,增

    obj = models.UserInfo(username = 'xixi', password = '123', email = '123@kd.ocm', userType = models.UserType.objects.get(id = 2))
obj.save() obj = models.UserInfo(username='xixi', password='123', email='123@kd.ocm', userType_id=2)#注意此处是一个下划线
obj.save() models.UserInfo.objects.create(username='gan', password='123', email='123@kd.ocm', userType_id=1)
# TypeError: 'userType_name' is an invalid keyword argument for this function info_dict = {'username':'wei', 'password':'123', 'email':'123@kd.ocm', 'userType_id':1}#注意此处是一个下划线
models.UserInfo.objects.create(**info_dict)

  2,删

    def delNewsByID(self, id):
models.News.objects.filter(nid=id).delete()
def delNewsByTitle(self, id):
models.News.objects.filter(title=id).delete()

  3,改

    def updateNewsByID(self, id, title, content):
models.News.objects.filter(nid= id).update(title = title, content = content)
# news = models.News.objects.get(nid=id)
# news.title = 'updatetitle'
# news.save()

  4,查

    ref = models.UserInfo.objects.all().values('username', 'email')
print(ref, '----', ref.query)
# < QuerySet[{'username': 'wang', 'email': '123@qw.com'}, {'username': 'xixi', 'email': '123@kd.ocm'}, {'username': 'xixi', 'email': '123@kd.ocm'},
# { 'username': 'gan', 'email': '123@kd.ocm'}] > ---- SELECT`app01_userinfo`.`username`, `app01_userinfo`. `email` FROM `app01_userinfo` # ref = models.UserInfo.objects.all().values('username', 'userType__id', 'userType__name', 'userType__userinfo__username')#注意此处是2个下划线
ref = models.UserInfo.objects.filter(userType__name='administrator').values('username', 'userType__id', 'userType__name')
print(ref, '----', ref.query)
# < QuerySet[{'username': 'wang', 'userType__id': 1, 'userType__name': 'administrator'}, {'username': 'xixi', 'userType__id': 2, 'userType__name': 'user'}, { 'username': 'xixi', 'userType__id': 2, 'userType__name': 'user'}, {'username': 'gan', 'userType__id': 1, 'userType__name': 'administrator'}, { 'username': 'wei', 'userType__id': 1, 'userType__name': 'administrator'},
# {'username': 'wei', 'userType__id': 1, 'userType__name': 'administrator'}] > ---- SELECT `app01_userinfo`. `username`, `app01_userinfo`.
# `userType_id`, `app01_usertype`. `name` FROM `app01_userinfo` INNER JOIN `app01_usertype` ON(`app01_userinfo`. `userType_id` = `app01_usertype`.`id`)
for item in ref:
print(item, '==', type(item))

Django—models相关操作的更多相关文章

  1. django models 数据库操作

    django models 数据库操作 创建模型 实例代码如下 from django.db import models class School(models.Model): pass class ...

  2. Django cookie相关操作

    Django cookie 的相关操作还是比较简单的 首先是存储cookie #定义设置cookie(储存) def save_cookie(request): #定义回应 response = Ht ...

  3. django models数据库操作

    一.数据库操作 1.创建model表         基本结构 1 2 3 4 5 6 from django.db import models     class userinfo(models.M ...

  4. Django学习笔记之Django ORM相关操作

    一般操作 详细请参考官方文档 必知必会13条 <> all(): 查询所有结果 <> filter(**kwargs): 它包含了与所给筛选条件相匹配的对象 <> ...

  5. Django Models相关

    Models的相关知识 1. AutoField:自增整数类型.根据 ID 自增长的 Int字段 2. IntegerField:整数类型 3. BigIntegerField:大整数类型.用于数值较 ...

  6. Django Models 查询操作

    1.准备数据表: from django.db import models class City(models.Model): name=models.CharField(max_length=32) ...

  7. Django session相关操作

    Django session 是存储在数据库中的所以要先跟数据库建立连接 本连接有Django跟数据库建立连接的操作:https://www.cnblogs.com/Niuxingyu/p/10296 ...

  8. Django数据库相关操作

    首先,在settings.py中加入应用的名称,让数据库知道使用的是哪个应用,然后给那个应用创建表. 在settings.py中配置数据库相关参数,默认使用sqlite3不用配置 编辑models.p ...

  9. Django框架详细介绍---ORM相关操作

    Django ORM相关操作 官方文档: https://docs.djangoproject.com/en/2.0/ref/models/querysets/ 1.必须掌握的十三个方法 <1& ...

随机推荐

  1. orale中如何获取当前月份?

    就本人所知,在oracle中,有两种方式可以提取系统的当前月份: 1.使用extract 函数,具体用法看SQL语句: select extract(month from sysdate) as &q ...

  2. masm6.11的BUG?

    mov eax,[ebp + eax] ;->DS: mov eax,[eax + ebp] ;->SS: 上述2行代码生成的机器码反了,据说masm8也有此问题,但是masm9是正常的.

  3. React Native入门 认识Flexbox布局

    Flexbox布局是由W3C在09年提出的在Web端取代CSS盒子模型的一种布局方式. ReactNative实现了Flexbox布局的大部分功能. Flexbox布局所使用的属性,基本可以分为两大类 ...

  4. hive的高级查询(group by、 order by、 join 、 distribute by、sort by、 clusrer by、 union all等)

    查询操作 group by. order by. join . distribute by. sort by. clusrer by. union all 底层的实现 mapreduce 常见的聚合操 ...

  5. vs工具

    首页 精选版块 论坛帮助 论坛牛人 论坛地图 专家问答 CSDN > CSDN论坛 > .NET技术 > 非技术区 返回列表 管理菜单 结帖 发帖 回复 关注 [推荐] Visual ...

  6. 从has no method 'tmpl'谈起

    最近做一个相对比较功能专业化的应用系统,其中今天Leader提出的功能修改需求有点smart table的意思,其中有个界面修改由于用Dom操作太麻烦了,于是想用用很久之前在学习jQuery API中 ...

  7. Android面试题摘录

    本文中面试题全部选自<精通Android>(英文名“Pro android 4”)一书的章后面试题,不过这套面试题与书中内容结合比较紧密,所以选择使用时请谨慎. ####C2:Androi ...

  8. Java在线考试系统(含源码)

    本文demo下载和视频教学观看地址:http://www.wisdomdd.cn/Wisdom/resource/articleDetail.htm?resourceId=1076 本实例介绍了在线考 ...

  9. [ Java面试题 ] 框架篇

    1.谈谈你对Struts的理解. 1. struts是一个按MVC模式设计的Web层框架,其实它就是一个Servlet,这个Servlet名为ActionServlet,或是ActionServlet ...

  10. 使用webpack打包vue工程

    记得去年十月份的时候,自己在研究webpack,当时只是知道大致的用法,写了一个简单的demo,现在,经过了7个月对公司产品架构的使用,以及对vue-cli的使用,在了解了实际应用中各种需求之后,我自 ...