admin 中文设置
在setttings.py下
1 | # LANGUAGE_CODE = 'en-us' |
访问:http://127.0.0.1:8000/admin/
发现已经变成中文的了
认证
创建普通用户
1 | python3 manage.py shell |
1 | >>> from django.contrib.auth.models import User |
创建超级用户
1 | $ python manage.py createsuperuser --username=hugh --email=hugh@126.com |
更改密码
1 | > from django.contrib.auth.models import User |
验证用户
1 | >>> from django.contrib.auth import authenticate |
权限和认证
admin管理员的权限:添加、修改、删除。
默认权限
当安装了django.contrib.auth应用,对每个已安装的应用都会有三个默认许可–添加、修改、删除。
当运行manage.py migrate时,管理员对模型的默认权限就会被创建,包括已有的模型和新增的模型。
web请求的认证
1 | if request.user.is_authenticated: |
用户验证
1 | from django.contrib.auth import authenticate, login |
用户登出
1 |
|
重定向(login_required 装饰器)
作用:用户没有登录,跳回登录页面
1 | from django.contrib.auth.decorators import login_required |
重定向(LoginRequiredMixin)
作用:用户没有登录,跳回登录页面
1 | from django.contrib.auth.mixins import LoginRequiredMixin |
日志
介绍
Django使用的是Python的内置日志(logging)模块构建自己的日志系统
组成
python日志组成:
- Loggers(记录器)
- Handlers(处理器)
- Filters(过滤器)
- Formatters(格式化器)
Loggers 记录器
日志记录器是进入日志系统的入口点。每个日志记录器都是一个有名的‘桶’,将消息写入其中进行处理。
记录器具有日志级别属性(log level)。这个日志级别描述日志记录器所处理消息的严重程度。Python定义的以下日志级别:1
2
3
4
5DEBUG:用于调试目的的低等级系统信息
INFO:一般的系统信息。
WARNING:描述发生的一个小问题的信息
ERROR:描述发生的一个大问题的信息
CRITICAL:描述已发生的关键问题的信息。
写入日志记录器的每个消息都是日志记录。每个日志记录都有一个日志级别,指示特定消息的严重程度。日志记录还可以包含描述正在记录的事件的有用元数据。这可能包括详细信息,例如堆栈跟踪或错误代码。
当消息被提供给记录器时,将消息的日志级别与记录器的日志级别进行比较。如果消息的日志级别满足或超过记录器本身的日志级别,则消息将进行进一步处理。如果没有,消息将被忽略。
一旦日志记录器确定需要处理消息,就会将其传递给处理程序。
Handlers
处理程序是决定日志记录器中每个消息处理行为的引擎。它描述特定的日志记录行为,例如向屏幕、文件或网络套接字写入消息。
与日志记录器一样,处理程序也具有日志级别。如果日志记录的日志级别不满足或超过处理程序的级别,处理程序将忽略消息。
日志记录器可以有多个处理程序,每个处理程序可以有不同的日志级别。通过这种方式,可以根据消息的重要性提供不同形式的通知。例如,您可以安装一个将错误和关键消息转发到分页服务的处理程序,而第二个处理程序将所有消息(包括错误和关键消息)记录到一个文件中,以便稍后进行分析。
Filters
过滤器用于提供对日志记录从日志记录器传递到处理程序过程中的额外控制。
默认情况下,满足日志级别要求的任何日志消息都将被处理。但是,通过安装过滤器,您可以在日志记录过程中添加额外的条件。例如,您可以安装一个过滤器,该过滤器只允许发出来自特定源的错误消息。
过滤器还可以用于在发出日志记录之前修改日志记录。例如,您可以编写一个过滤器,如果满足特定的一组条件,则将错误日志记录降级为警告记录。
过滤器可以安装在记录器或处理器上;可以在一个链中使用多个过滤器来执行多个过滤操作。
Formatters
最终,需要将日志记录呈现为文本。格式化器描述了文本的精确格式。格式化程序通常由包含日志记录属性(LogRecord attributes)的Python格式化字符串组成;但是,您也可以编写自定义格式化程序来实现特定的格式化行为。
使用日志
在setting.py中
1 | #导入模块 |
在views.py中使用
1 | logger = logging.getLogger('sourceDns.webdns.views') #刚才在setting.py中配置的logger |
发送邮件
资讯聚合(RSS/Atom)
介绍
就本质而言,RSS和Atom是一种信息聚合的技术,都是为了提供一种更为方便、高效的互联网信息的发布和共享,用更少的时间分享更多的信息。
案例
分页
介绍
Django提供了一个新的类来帮助你管理分页数据,这个类存放在django/core/paginator.py.它可以接收列表、元组或其它可迭代的对象。
使用
1 | from django.core.paginator import Paginator, EmptyPage, PageNotAnInteger |
1 | {% for contact in contacts %} |