Django开发笔记一

Django开发笔记二

Django开发笔记三

Django开发笔记四

Django开发笔记五

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开发笔记二的更多相关文章

  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. hihocoder #1236 Scores (15北京赛区网络赛J) (五维偏序,强制在线,bitset+分块)

    链接:http://hihocoder.com/problemset/problem/1236 思路; 有n个五维的向量,给出q个询问,每个询问是一个五维向量,问有多少个向量没有一维比这个向量大.并且 ...

  2. day10 前向引用

    风湿理论,函数即变量.没定义没加载(开辟内存空间).都是没法用的 不定义调用必然出错 def foo(): print("from foo") bar () # 标红 foo() ...

  3. 【AGC005F】Many Easy Problems

    Description 题目链接 对于每个\(k\),统计任选\(k\)个点作为关键点的"最小生成树"的大小之和 Solution 正向想法是枚举或者计算大小为\(x\).叶子数目 ...

  4. cf1063B Labyrinth (bfs)

    可以证明,如果我搜索的话,一个点最多只有两个最优状态:向左剩余步数最大时和向右剩余步数最大时 然后判一判,bfs就好了 dfs会T惨... #include<bits/stdc++.h> ...

  5. 目标检测网络之 R-FCN

    R-FCN 原理 R-FCN作者指出在图片分类网络中具有平移不变性(translation invariance),而目标在图片中的位置也并不影响分类结果;但是检测网络对目标的位置比较敏感.因此Fas ...

  6. C# 多窗体之间方法调用

    看似一个简单的功能需求,其实很多初学者处理不好的,很多朋友会这么写: //父窗体是是frmParent,子窗体是frmChildA //在父窗体中打开子窗体 frmChildA child = new ...

  7. python爬虫 beutifulsoup4_1官网介绍

    http://www.crummy.com/software/BeautifulSoup/bs4/doc/ Beautiful Soup Documentation Beautiful Soup is ...

  8. if语句和case语句用法展示

    if语句和case语句用法展示 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.单分支if条件语句 1>.语法格式一 if [ 条件判断式 ];then 源代码 fi 2& ...

  9. 远程升级云服务器系统 CentOS 6.x 至 CentOS 7.x

    由于docker-ce不再支持centos6,所以觉得吧系统升级为centos7,以下是踩坑的过程 1.添加源 /etc/yum.repos.d/upgrade.repo [upgrade] name ...

  10. JAVA记录-JDBC介绍

    JDBC(Java DataBase Connection),java数据库连接,是一种用于执行SQL语句的Java API,可以为多种关系数据库提供统一访问,它由一组用Java语言编写的类和接口组成 ...