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 ...
随机推荐
- python 模块 - 序列化 json 和 pickle
1,引入 之前我们学习过用eval内置方法可以将一个字符串转成python对象,不过,eval方法是有局限性的,对于普通的数据类型,json.loads和eval都能用,但遇到特殊类型的时候,eval ...
- The Shortest Statement CodeForces - 1051F(待测试)
#include <iostream> #include <cstdio> #include <sstream> #include <cstring> ...
- JeeSite框架中httpSession.invalidate();无效
想要实现一个功能:同一个用户在两个不同的浏览器中登录,后面的踢掉之前的登录. 本来的思路是在httpSession监听器中进行判断.但是在使用httpSession.invalidate();销毁Se ...
- 查看本地Git仓库历史修改内容
查看历史内容 在.git文件 同级目录下,右键 选择 git history 但是红框中的路径无法拷贝.右键红框中的任一文件,有 HighLight this only, Highlight this ...
- day6 字典
字典的创建方式 注意 字典是无序的 1. dic{"name":"yang","age":35} 常用还是用这个 2. dic3 = dic ...
- MT【228】整数解的个数
求方程$x+y+z=24$的整数解的个数,要求$1\le x\le 5,12\le y\le 18,-1\le z\le12$ 解:设$a_r$是方程$X+Y+Z=r$的满足上述要求的整数解的个数,那 ...
- 06 Zabbix分布式监控和主被动模式
06 Zabbix分布式监控和主被动模式 zabbix proxy设置 使用zabbix代理的好处 监控拥有不可靠的远程区域 当监控项目数以万计的时候使用代理分担zabbix-proxy压力 简化分布 ...
- Intent 传递数据
使用INtent 在页面之间跳转,数据传递是必须的,我们可以直接在intent 对象上放置基本数据类型的数据,也可以放置字符串和其他数据类型数据.对于其他数据类型,实现了Parcelable 或Ser ...
- 洛谷 P1057 传球游戏 解题报告
P1057 传球游戏 题目描述 上体育课的时候,小蛮的老师经常带着同学们一起做游戏.这次,老师带着同学们一起做传球游戏. 游戏规则是这样的:n个同学站成一个圆圈,其中的一个同学手里拿着一个球,当老师吹 ...
- sliding menu
http://www.androiduipatterns.com/2012/06/emerging-ui-pattern-side-navigation.htmlhttps://github.com/ ...