Django开发笔记二
1、xadmin添加主题、修改标题页脚和收起左侧菜单
# *************后台***********************
# 主题
class BaseSetting(object):
enable_themes = True
use_bootswatch = True # 修改标题页脚和收起左侧菜单
class GlobalSetting(object):
site_title = "xx管理系统"
site_footer = "xxxx"
menu_style = "accordion" xadmin.site.register(views.BaseAdminView, BaseSetting)
xadmin.site.register(views.CommAdminView, GlobalSetting)
主题如果未加载(只有默认的和Bootstrap2)参考:https://my.oschina.net/u/2396236/blog/1083251
2、xadmin左侧菜单app文字修改
apps.py:
class UsersConfig(AppConfig):
name = 'users'
verbose_name = u"用户"
__init__.py:
default_app_config = "users.apps.UsersConfig"
3、静态页面跳转:
settings.py:
STATIC_URL = '/static/' STATICFILES_DIRS = (
os.path.join(BASE_DIR, "static"),
)
urls.py:
from django.views.generic import TemplateView urlpatterns = [
url(r'^admin/', xadmin.site.urls),
url(r'^$', TemplateView.as_view(template_name="test/index.html"), name="index"),
url(r'^login$', TemplateView.as_view(template_name="test/login.html"), name="login"), ]
4、用户登录:
修改urls.py:
from users.views import login
url(r'^login/$', login, name="login"),
user app下views.py:
from django.shortcuts import render
from django.contrib.auth import login as dj_login, authenticate # Create your views here. def login(request):
if request.method == "POST":
user_name = request.POST.get("username", "")
pass_word = request.POST.get("password", "")
user = authenticate(username=user_name, password=pass_word) if user is not None:
dj_login(request, user)
return render(request, "test/index.html", {})
else:
return render(request, "test/login.html", {"msg":"username or password is wrong"}) elif request.method == "GET":
return render(request, "test/login.html", {})
注意和系统函数重名时可以用别名区分,例如:as dj_login
5、添加邮箱认证登录:
settings.py:
AUTHENTICATION_BACKENDS = ('users.views.CustomBackend',)
user app下views.py
# coding=utf-8
from django.shortcuts import render
from django.contrib.auth import login as dj_login, authenticate
from django.contrib.auth.backends import ModelBackend
from django.db.models import Q
from users.models import UserProfile # Create your views here. # 添加邮箱认证
class CustomBackend(ModelBackend):
def authenticate(self, username=None, password=None, **kwargs):
try:
user = UserProfile.objects.get(Q(username=username) | Q(email=username))
if user.check_password(password):
return user
except Exception as e:
return None
6、在首页区别登录的用户和未登录的用户:
{% if request.user.is_authenticated %}
登录的页面
{% else %}
未登录的页面
{% endif %}
Django开发笔记二的更多相关文章
- Django开发笔记六
Django开发笔记一 Django开发笔记二 Django开发笔记三 Django开发笔记四 Django开发笔记五 Django开发笔记六 1.登录功能完善 登录成功应该是重定向到首页,而不是转发 ...
- Django开发笔记五
Django开发笔记一 Django开发笔记二 Django开发笔记三 Django开发笔记四 Django开发笔记五 Django开发笔记六 1.页面继承 定义base.html: <!DOC ...
- Django开发笔记四
Django开发笔记一 Django开发笔记二 Django开发笔记三 Django开发笔记四 Django开发笔记五 Django开发笔记六 1.邮箱激活 users app下,models.py: ...
- Django开发笔记三
Django开发笔记一 Django开发笔记二 Django开发笔记三 Django开发笔记四 Django开发笔记五 Django开发笔记六 1.基于类的方式重写登录:views.py: from ...
- Django开发笔记一
Django开发笔记一 Django开发笔记二 Django开发笔记三 Django开发笔记四 Django开发笔记五 Django开发笔记六 1.运行 python manage.py runser ...
- Django学习笔记二
Django学习笔记二 模型类,字段,选项,查询,关联,聚合函数,管理器, 一 字段属性和选项 1.1 模型类属性命名限制 1)不能是python的保留关键字. 2)不允许使用连续的下划线,这是由dj ...
- Django开发笔记(一)
Django开发笔记(一) 标签(空格分隔): Django Python 1. 创建并运行Django项目 创建开发环境 安装Django pip install django==version 执 ...
- SDL开发笔记(二):音频基础介绍、使用SDL播放音频
若该文为原创文章,未经允许不得转载原博主博客地址:https://blog.csdn.net/qq21497936原博主博客导航:https://blog.csdn.net/qq21497936/ar ...
- EasyUI 开发笔记(二)
接上篇 :EasyUI 开发笔记(一) (http://www.cnblogs.com/yiayi/p/3485258.html) 这期就简单介绍下, easyui 的 list 展示, 在easy ...
随机推荐
- Harmonic Number (II) LightOJ - 1245 (找规律?。。。)
题意: 求前n项的n/i 的和 只取整数部分 暴力肯定超时...然后 ...现在的人真聪明...我真蠢 觉得还是别人的题意比较清晰 比如n=100的话,i=4时n/i等于25,i=5时n/i等于20 ...
- day28 反射 属性操作 getattr hasattr setattr delattr
反射 用字符串来对应其同名的属性或者方法,通过某种方法调用这个字符串来执行方法或者获取属性 网络编程的时候非常好用,是很重要的内容 先看个示例吧: class Teather: dic = { &qu ...
- 自学Linux Shell4.2-监测磁盘空间mount umount df du
点击返回 自学Linux命令行与Shell脚本之路 4.2-监测磁盘空间mount umount df du 1. 挂载存储媒体mount 移除存储媒体umount ls命令用于显示文件目录列表, ...
- 【ARC065E】??
Description 链接 Solution 问题其实就是从一个点出发,每次可以走与其曼哈顿距离恰好为一个常数\(d\)的点 显然不可能一一走完所有的边,这样复杂度下界至少是\(O(ans)\) 我 ...
- shell(2)-&& 与 || 逻辑或与非
test 命令测试 -常见的测试类型–测试文件状态–字符串比较–整数值比较–逻辑测试&& 如果是“前面”(真),则“后面”[ -f /var/run/dhcpd.pid ] & ...
- django xadmin
1.11.13版本下的[安装]: 1.下载分支版本 https://github.com/nocmt/Xadmin1.11.x/archive/master.zip 2.解压,并将其放在site-pa ...
- 【洛谷P1717】钓鱼
题目大意:给定 N 个位置,每个位置有一个答案贡献值,在一个位置加了一次该位置的答案贡献值之后,该值会减掉一部分,从一个位置移动到另一个位置需要花费一定的时间,问:给定 M 单位的时间,如何移动使得答 ...
- Dom--属性以及创建标签
一.Dom属性 1.1 设置属性(setAttribute) 设置某个标签的属性,setAttribute(key,value) <body> <div> <input ...
- Nginx核心配置文件常用参数详解
Nginx核心配置文件常用参数详解 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 关于Nginx权威文档的话童鞋们可以参考Nginx官方文档介绍:http://nginx.org/ ...
- Vue.js 开发环境的搭建
1. cnpm install vue-cli(安装vue 脚手架) 2. vue init webpack my-project(my-project:自定义,取一个项目的名字,init 初始化一个 ...