python管理员登录界面_django学习-管理界面、视图

django管理界面

设计背景

为你的员工或客户生成一个用户添加,修改和删除内容的后台是一项缺乏创造性和乏味的工作。因此,django全自动地根据模型创建后台界面。

django产生于一个公众页面和内容发布者页面完全分离的新闻类站点的开发过程中。

站点管理人员使用管理系统来添加新闻、时间和体育时讯等,这些添加的内容被显示在公共页面上。django通过为站点管理人员创建统一的内容编辑界面解决了这个问题。

管理界面不是为了网站的访问者,而是为了管理者准备的。

创建一个管理员账号

首先,我们得创建一个能登录管理页面的用户。请运行下面的命令:

py -3 manage.py createsuperuser

D:\django\mysite>py -3 manage.py createsuperuser

#输入用户名

Username (leave blank to use 'lenovo'): admin

#输入邮箱

#输入密码

Password:

Password (again):

The password is too similar to the username.

This password is too short. It must contain at least 8 characters.

This password is too common.

Bypass password validation and create user anyway? [y/N]: y

启动开发服务器

django的管理页面默认就是启用的。让我们启用开发服务器,看看它到底是什么样的。

如果开发服务器未启动,用以下命令启动它:

python manage.py runserver

浏览器访问http://127.0.0.1:8000/admin/,转到本地域名的”/admin/”目录,你会看到管理员登录界面:

django默认开启翻译功能,所以登录界面可能会使用浏览器的语言,取决于浏览器的设置和django是否拥有你语言的翻译。

进入管理员站点页面

现在,试着使用你在上一步中创建的超级用户来登录。然后你将会看到django管理页面的索引页:

你将会看到几种可编辑的内容:组和用户。它们是由django.contrib.auth提供的,这是django开发的认证框架。

向管理页面中加入投票应用

但是我们的投票应用在哪儿呢?它没在索引页面里显示

只需要做一件事:我们得告诉管理页面,问题Question对象需要被管理。开发polls/admin.py文件,把它编辑成下面这样:

polls/admin.py:

from django.contrib importadmin#Register your models here.

from .models importQuestion

admin.site.register(Question)

体验便捷的管理功能

现在我们向管理页面注册了问题Question类。django知道它应该被显示在索引页里:

点击“Question”。现在看到是问题“Question”对象的列表“change list”。这个界面会显示所有数据库里的问题Queston对象,你可以选择一个来修改。这里现在有我们在上一部分中创建的”What’s new?”问题。

点击”What’s new?”来编辑这个问题(Question)对象:

注意事项:

1)这个表单时从问题Question模型中自动生成的

2)不同的字段类型(日期时间字段DateTimeField、字符字段CharField)会生成对应的HTML输入控件。每个类型的字段都知道它们该如何在管理页面显示自己。

3)每个日期时间字段DateTimeField都有JavaScript写的快捷按钮。日期有转到今天(Today)的快捷按钮和一个弹出式日历界面。时间有设为现在(Now)的快捷按钮和一个列出常用时间的方便的弹出式列表。

页面底部提供了几个选项

1)保存(Save)-保存修改,然后返回对象列表

2)保存并继续编辑(Save and continue editing)-保存改变,然后重新载入当前对象的修改界面。

3)保存并新增(Save and add another)-保存改变,然后添加一个新的空对象并载入修改界面

4)删除(Delete)-显示一个确认删除页面

如果显示的“发布日期(Date Published)”和你在创建它们的时间不一致,这意味着你可能没有正

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在 Django 中,可以使用中间件来控制用户访问权限。对于需要分离普通用户和管理员登录界面的情况,可以使用自定义中间件来实现。 首先,需要在 settings.py 文件中设置两个登录 URL,一个用于普通用户,一个用于管理员: ```python LOGIN_URL = '/user/login/' ADMIN_LOGIN_URL = '/admin/login/' ``` 然后,创建一个自定义中间件,根据用户的角色来设置 session 的键名,以便区分普通用户和管理员的 session: ```python class SessionMiddleware: def __init__(self, get_response): self.get_response = get_response def __call__(self, request): if request.user.is_authenticated: if request.user.is_staff: request.session['admin'] = True request.session.pop('user', None) else: request.session['user'] = True request.session.pop('admin', None) else: request.session.pop('user', None) request.session.pop('admin', None) response = self.get_response(request) return response ``` 在这个中间件中,如果用户已登录,则根据用户的角色设置 session 的键名。如果是管理员,则设置为 'admin',如果是普通用户,则设置为 'user'。如果用户未登录,则删除所有的 session。 最后,在视图函数中,可以根据 session 的键名来判断用户的角色,从而进行相应的操作: ```python def my_view(request): if request.session.get('admin'): # 管理员操作 pass elif request.session.get('user'): # 普通用户操作 pass else: # 用户未登录 pass ``` 通过这种方式,可以实现普通用户和管理员登录界面分离,并且可以隔离它们的 session。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值