Django开发笔记一

Django开发笔记二

Django开发笔记三

Django开发笔记四

Django开发笔记五

Django开发笔记六

1、xadmin添加主题、修改标题页脚和收起左侧菜单

  1. # *************后台***********************
  2. # 主题
  3. class BaseSetting(object):
  4. enable_themes = True
  5. use_bootswatch = True
  6.  
  7. # 修改标题页脚和收起左侧菜单
  8. class GlobalSetting(object):
  9. site_title = "xx管理系统"
  10. site_footer = "xxxx"
  11. menu_style = "accordion"
  12.  
  13. xadmin.site.register(views.BaseAdminView, BaseSetting)
  14. xadmin.site.register(views.CommAdminView, GlobalSetting)

主题如果未加载(只有默认的和Bootstrap2)参考:https://my.oschina.net/u/2396236/blog/1083251

2、xadmin左侧菜单app文字修改

apps.py:

  1. class UsersConfig(AppConfig):
  2. name = 'users'
  3. verbose_name = u"用户"

__init__.py:

  1. default_app_config = "users.apps.UsersConfig"

3、静态页面跳转:

settings.py:

  1. STATIC_URL = '/static/'
  2.  
  3. STATICFILES_DIRS = (
  4. os.path.join(BASE_DIR, "static"),
  5. )

urls.py:

  1. from django.views.generic import TemplateView
  2.  
  3. urlpatterns = [
  4. url(r'^admin/', xadmin.site.urls),
  5. url(r'^$', TemplateView.as_view(template_name="test/index.html"), name="index"),
  6. url(r'^login$', TemplateView.as_view(template_name="test/login.html"), name="login"),
  7.  
  8. ]

4、用户登录:

修改urls.py:

  1. from users.views import login
  2. url(r'^login/$', login, name="login"),

user app下views.py:

  1. from django.shortcuts import render
  2. from django.contrib.auth import login as dj_login, authenticate
  3.  
  4. # Create your views here.
  5.  
  6. def login(request):
  7. if request.method == "POST":
  8. user_name = request.POST.get("username", "")
  9. pass_word = request.POST.get("password", "")
  10. user = authenticate(username=user_name, password=pass_word)
  11.  
  12. if user is not None:
  13. dj_login(request, user)
  14. return render(request, "test/index.html", {})
  15. else:
  16. return render(request, "test/login.html", {"msg":"username or password is wrong"})
  17.  
  18. elif request.method == "GET":
  19. return render(request, "test/login.html", {})

注意和系统函数重名时可以用别名区分,例如:as dj_login

5、添加邮箱认证登录:

settings.py:

  1. AUTHENTICATION_BACKENDS = ('users.views.CustomBackend',)

user app下views.py

  1. # coding=utf-8
  2. from django.shortcuts import render
  3. from django.contrib.auth import login as dj_login, authenticate
  4. from django.contrib.auth.backends import ModelBackend
  5. from django.db.models import Q
  6. from users.models import UserProfile
  7.  
  8. # Create your views here.
  9.  
  10. # 添加邮箱认证
  11. class CustomBackend(ModelBackend):
  12. def authenticate(self, username=None, password=None, **kwargs):
  13. try:
  14. user = UserProfile.objects.get(Q(username=username) | Q(email=username))
  15. if user.check_password(password):
  16. return user
  17. except Exception as e:
  18. return None

6、在首页区别登录的用户和未登录的用户:

  1. {% if request.user.is_authenticated %}
  2.         登录的页面
  3. {% else %}
  4.         未登录的页面
  5. {% endif %}

Django开发笔记二的更多相关文章

  1. Django开发笔记六

    Django开发笔记一 Django开发笔记二 Django开发笔记三 Django开发笔记四 Django开发笔记五 Django开发笔记六 1.登录功能完善 登录成功应该是重定向到首页,而不是转发 ...

  2. Django开发笔记五

    Django开发笔记一 Django开发笔记二 Django开发笔记三 Django开发笔记四 Django开发笔记五 Django开发笔记六 1.页面继承 定义base.html: <!DOC ...

  3. Django开发笔记四

    Django开发笔记一 Django开发笔记二 Django开发笔记三 Django开发笔记四 Django开发笔记五 Django开发笔记六 1.邮箱激活 users app下,models.py: ...

  4. Django开发笔记三

    Django开发笔记一 Django开发笔记二 Django开发笔记三 Django开发笔记四 Django开发笔记五 Django开发笔记六 1.基于类的方式重写登录:views.py: from ...

  5. Django开发笔记一

    Django开发笔记一 Django开发笔记二 Django开发笔记三 Django开发笔记四 Django开发笔记五 Django开发笔记六 1.运行 python manage.py runser ...

  6. Django学习笔记二

    Django学习笔记二 模型类,字段,选项,查询,关联,聚合函数,管理器, 一 字段属性和选项 1.1 模型类属性命名限制 1)不能是python的保留关键字. 2)不允许使用连续的下划线,这是由dj ...

  7. Django开发笔记(一)

    Django开发笔记(一) 标签(空格分隔): Django Python 1. 创建并运行Django项目 创建开发环境 安装Django pip install django==version 执 ...

  8. SDL开发笔记(二):音频基础介绍、使用SDL播放音频

    若该文为原创文章,未经允许不得转载原博主博客地址:https://blog.csdn.net/qq21497936原博主博客导航:https://blog.csdn.net/qq21497936/ar ...

  9. EasyUI 开发笔记(二)

    接上篇 :EasyUI 开发笔记(一)  (http://www.cnblogs.com/yiayi/p/3485258.html) 这期就简单介绍下, easyui 的 list 展示, 在easy ...

随机推荐

  1. python 模块 - 序列化 json 和 pickle

    1,引入 之前我们学习过用eval内置方法可以将一个字符串转成python对象,不过,eval方法是有局限性的,对于普通的数据类型,json.loads和eval都能用,但遇到特殊类型的时候,eval ...

  2. The Shortest Statement CodeForces - 1051F(待测试)

    #include <iostream> #include <cstdio> #include <sstream> #include <cstring> ...

  3. JeeSite框架中httpSession.invalidate();无效

    想要实现一个功能:同一个用户在两个不同的浏览器中登录,后面的踢掉之前的登录. 本来的思路是在httpSession监听器中进行判断.但是在使用httpSession.invalidate();销毁Se ...

  4. 查看本地Git仓库历史修改内容

    查看历史内容 在.git文件 同级目录下,右键 选择 git history 但是红框中的路径无法拷贝.右键红框中的任一文件,有 HighLight this only, Highlight this ...

  5. day6 字典

    字典的创建方式 注意 字典是无序的 1. dic{"name":"yang","age":35} 常用还是用这个 2. dic3 = dic ...

  6. 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$的满足上述要求的整数解的个数,那 ...

  7. 06 Zabbix分布式监控和主被动模式

    06 Zabbix分布式监控和主被动模式 zabbix proxy设置 使用zabbix代理的好处 监控拥有不可靠的远程区域 当监控项目数以万计的时候使用代理分担zabbix-proxy压力 简化分布 ...

  8. Intent 传递数据

    使用INtent 在页面之间跳转,数据传递是必须的,我们可以直接在intent 对象上放置基本数据类型的数据,也可以放置字符串和其他数据类型数据.对于其他数据类型,实现了Parcelable 或Ser ...

  9. 洛谷 P1057 传球游戏 解题报告

    P1057 传球游戏 题目描述 上体育课的时候,小蛮的老师经常带着同学们一起做游戏.这次,老师带着同学们一起做传球游戏. 游戏规则是这样的:n个同学站成一个圆圈,其中的一个同学手里拿着一个球,当老师吹 ...

  10. sliding menu

    http://www.androiduipatterns.com/2012/06/emerging-ui-pattern-side-navigation.htmlhttps://github.com/ ...