Django 站点管理

1-创建超级用户:

python manage.py createsuperuser  自己的名字

之后会要求你输入邮箱和两次密码,创建完成,完成后需要在应用的admin.py中写入以下代码,进行注册:

admin.site.register('自己的类名')

2-管理自己

当django 的某些功能不够我们使用时,我们可以自己创建一个自定义的管理类。

搬砖如下:

#自定义自己的管理类
class PlayerAdmin(admin.ModelAdmin):
    def get_rate_lever(self):
        if self.rate>9:
            return "大于九分"
        else:
            return "自己心里没数"
    get_rate_lever.short_description = "简单评价"
#设定显示的字段,可以多个 
   list_display = ['name''rate', get_rate_level]
#过滤设置
    list_filter = ['rate']
#查找
    search_fields = ['name']
# 信息分组
    fieldsets = [
        ('基本信息',{'fields':('name','desc')})
    ]
    

自定义chua创建后记得注册到admin中。

admin.site.register(Player,PlayerAdmin)

models中进行定义,具体搬转:

class Player(models.Model):
    name=models.CharField(
        verbose_name="角色",
        max_length=30
    )
    desc=models.CharField(
        verbose_name="描述",
        max_length=255
    )
    rate=models.FloatField(
        verbose_name="评分"
    )
    # objects=Models.Manage()
    def __str__(self):
        return self.name

写完后记得迁移文件,相关词:makemigrations和migrate(执行迁移)

3-自定义登陆页

很简单的例子,在我们登陆django站点管理时,会显示Django管理的字样,我们可以根据自己的需要,设计成自己喜欢或xu'y需要的样式,如在管理里一个班级时,我们可以修改成网络工程班字样。具体步骤如下:

1-在templates目录下新建一个admin目录,并在这个目录下新建login.html文件。

2-复制源码login.html,zhao找到对应的block加入自己的内容(网络工程班)就可以了。

4-缓存

   一、数据库方式

 1-在settings.py中增加数据库的配置

#database
# CACHES = {
#     'default': {
#         'BACKEND': 'django.core.cache.backends.db.DatabaseCache',
#         'LOCATION': 'my_cache_table',#缓存数据放的位置
#         'TIMEOUT': '60',
#         'OPTIONS': {
#             'MAX_ENTRIES': '300',
#         },
#         'KEY_PREFIX': 'rock',
#         'VERSION': '1',
#     }
# }

2-创建缓存表:python manage.py createcachetable即可

     二、redis方式

1-settings配置如下:

#redis
CACHES = {
    "default": {
        "BACKEND": "django_redis.cache.RedisCache",
        "LOCATION": "redis://127.0.0.1:6379/1",
        "OPTIONS": {
            "CLIENT_CLASS": "django_redis.client.DefaultClient",
        }
    }
}

5-缓存的使用

1-页面级别的缓存,使用cache_page(seconds)装饰器

@cache_page(60)		
def get_data(req):
	
    time.sleep(5)
    return HttpResponse("睡醒了")

 

2-原生底层(从浏览器-urls-views,views查看缓存,若缓存中有数据则views直接返回给浏览器,若没有,则继续去mo'de'l里面取数据,此时model分别向views和缓存中响应,响应到views的那一部分继续返回到浏览器)

def get_players(req):
    #缓存中拿数据
    data=cache.get("players")
    if data:
        return HttpResponse(data)
    else:
        time.sleep(5)
        players=Player.objects.all()
        #设置缓从
        cache.set("players",players,30)
        return HttpResponse(players)

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值