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)