Django的后台管理

一直在简书记录自己的学习过程,这几天简书抽风,让重复绑定,否则发不了文章,折腾了半天也没有搞定,果断迁移支csdn这个技术性比较强的平台来记录。也没发全部迁移了,就接着简书的继续写吧!

今天到了Django的后台管理页面,与后台交互的模块是在应用中modles.py文件中来创建,然后迁移数据,形成数据库的数据,是不是很爽,我们不用在数据库里创建我们的数据表,只需要在模板后创建,然后迁移,django就会自动为我们在数据库中创建所有的数据,好了,大体说到这,首先来看一下整个项目的目录结构:

然后再来看下models.py文件的代码段: 

 

from django.db import models

# Create your models here.
#会义签到表
class even(models.Model):

    name = models.CharField(max_length=100)
    limit = models.IntegerField()
    status = models.BooleanField()
    addr = models.CharField(max_length=200)
    start_time = models.DateTimeField("even time")
    create_time = models.DateTimeField(auto_now=True)
    #定义这个方法,返回的 对象以什么样的形式式展示
    def __str__(self):
        return self.name

 #用户信息表
class guest(models.Model):
    even = models.ForeignKey(even)
    realname = models.CharField(max_length=20)
    phone = models.CharField(max_length=16)
    email = models.EmailField()
    sign = models.BooleanField()
    create_time = models.DateTimeField(auto_now=True)
#meat是python的内部类,用于定义一些模型的行为特性
class Meat():
    unqiue_together = ("even","phone")

def __str__(self):
    return self.realname

创建迁移文件:

python manage.py makemigrations sign

迁移文件:

python manage.py migrate

在admin.py文件中注册这两个表:

from django.contrib import admin
from .models import even,guest
# Register your models here.
class evenAdmin(admin.ModelAdmin):
    list_display = ["id","name","status","addr","start_time"]
    search_fields = ["name"]#添加搜索栏
    list_filter = ["status"]#过滤器
class guestAdmin(admin.ModelAdmin):
    list_display = ["realname","phone","email","sign","create_time","even"]
    list_filter = ["sign"]#过滤哭
    search_fields = ["phone","realname"]#搜索栏
admin.site.reg

 数据的基本访问:

数据的访问我们可以用pyhotn连接数据库执行查询语句来查询,那又是另外一个知识要点,今天我们就来说一下,在shell命令下简单查询数据,进入shell的命令是:

```

(pyweb) python@ubuntu:~/Desktop/projects/fan$ python manage.py shell
Python 3.5.2 (default, Jul  5 2016, 12:43:10) 
[GCC 5.4.0 20160609] on linux
Type "help", "copyright", "credits" or "license" for more information.
(InteractiveConsole)
>>> 

```

导入模块并查询两个活动的所有数据,因为在guest下我们没有添加活动,所以返回一个空列表:

>>> from sign.models import even ,guest
>>> even.objects.all()
[<even: 小米发布会 >, <even: 华为手机 >]
>>> guest.objects.all()
[]

插入数据保存,数据的字段要跟我们创建表时的字段一致,如何表中插入数据,请参考相关数据库操作知识:

>>> el = even(id=3,name="老师节见面会",limit=500,status="True",addr="北京",start_time=datetime(2018,9,22,18,0,0))
>>> el.save()

数据插入成功:

>>> even.objects.all()
[<even: 小米发布会 >, <even: 华为手机 >, <even: 老师节见面会>]

查询数据:

>>> el =even.objects.get(name="老师见面会")
>>> el
<even: 老师节见面会>
>>> el.status
'True'
>>> el.addr
'北京'
>>> el.name
'老师节见面会'

模糊查询:

>>> el = even.objects.filter(name__contains="发布会")
>>> el
[<even: 小米发布会 >]

注意:

name__contains是双下划线

删除数据:

>>> el.delete()
>>> el
[]
>>> even.objects.all()
[<even: 华为手机 >, <even: 老师节见面会>]

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值