实现用户注册与登录、登出(三)
来源:互联网 发布:淘宝哪家mcm高仿比较好 编辑:程序博客网 时间:2024/04/30 16:42
注册(产生用户)和登录(认证用户)
from django.contrib.auth.forms import UserCreationForm, AuthenticationForm
V
定义登录和注册函数
from django.shortcuts import render, Http404, HttpResponse, redirectfrom website.models import Videofrom django.core.paginator import Paginator, EmptyPage, PageNotAnIntegerfrom django.contrib.auth import authenticate, loginfrom website.form import LoginFormfrom django.contrib.auth.forms import UserCreationForm, AuthenticationForm# Create your views here.def listing(request, cate=None): context = {} if cate is None: vids_list = Video.objects.all() if cate == 'editors': vids_list = Video.objects.filter(editors_choice=True) else: vids_list = Video.objects.all() page_robot = Paginator(vids_list, 9) page_num = request.GET.get('page') try: vids_list = page_robot.page(page_num) except EmptyPage: vids_list = page_robot.page(page_robot.num_pages) #raise Http404('EmptyPage') except PageNotAnInteger: vids_list = page_robot.page(1) context['vids_list'] = vids_list return render(request, 'listing.html', context)def index_login(request): context = {} if request.method == "GET": form = AuthenticationForm if request.method == "POST": form = AuthenticationForm(data=request.POST) if form.is_valid(): login(request, form.get_user()) return redirect(to='list') context['form'] = form return render(request, 'register_login.html', context)def index_register(request): context = {} if request.method == 'GET': form = UserCreationForm if request.method == 'POST': form = UserCreationForm(request.POST) if form.is_valid(): form.save() return redirect(to='login') context['form'] = form return render(request, 'register_login.html', context)
U
给登录,注册,登出各定义一个url
from django.conf.urls import urlfrom django.contrib import adminfrom website.views import listing, index_login, index_registerfrom django.conf import settingsfrom django.conf.urls.static import staticfrom django.contrib.auth.views import logouturlpatterns = [ url(r'^admin/', admin.site.urls), url(r'^list/$', listing, name='list'), url(r'^list/(?P<cate>[A-Za-z]+)$', listing, name='list'), url(r'^login/$', index_login, name='login'), url(r'^register/$', index_register, name='register'), url(r'^logout/$', logout, {'next_page':'/register'},name='logout'),]if settings.DEBUG: urlpatterns += static(settings.STATIC_URL, document_root=settings.STATIC_ROOT) urlpatterns += static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)#在本地运行时使用
T
插入登出,登录,注册url
listing.html
<div class="item"> <a href="{% url 'logout' %}" class="ui inverted circular button">Logout</a> </div>
{% load staticfiles %}<!DOCTYPE html><html><head> <meta http-equiv="content-type" content="text/html; charset=UTF-8"> <meta charset="utf-8"> <title></title> <link rel="stylesheet" href="{% static 'css/semantic.css' %}" media="screen" title="no title" charset="utf-8"> <link rel="stylesheet" href="{% static 'css/list_custom.css' %}" media="screen" title="no title" charset="utf-8"></head><body> <div class="ui inverted top fixed menu borderless red menu"> <div class="header item"> <div class="ui image"> <img src="{% static 'images/tenlogo.png' %}" alt=""> </div> </div> <div class="right menu"> {% if request.user.is_authenticated %} <div class="item"> <h5 class="ui inverted header"> <span style="margin-right:20px;">{{ request.user.username }}</span> <div class="ui mini circular image"> {% if request.user.profile.profile_image %} <img src="/upload/{{ request.user.profile.profile_image }}" alt="" /> {% else %} <img src="http://semantic-ui.com/images/avatar/small/matt.jpg" alt="" /> {% endif %} </div> </h5> </div> <div class="item"> <a href="{% url 'logout' %}" class="ui inverted circular button">Logout</a> </div> {% else %} <div class="item"> <h5 class="ui inverted header"> <span style="margin-right:20px">{{ request.user.username }}</span> <div class="ui mini circular image"> <img src="http://semantic-ui.com/images/avatar/small/matt.jpg" alt="" /> </div> </h5> </div> <div class="item"> <a href="#" class="ui inverted circular button">Signup/Login</a> </div> {% endif %} </div> </div> <div class="ui inverted segment container nav"> <div class="ui three borderless item menu"> <a class="item" > All </a> <a class="item"> New </a> {% if 'editors' in request.path %} <a class="active item" href="{% url 'list' %}editors"> Editor's </a> {% else %} <a class="item" href="{% url 'list' %}editors"> Editor's </a> {% endif %} </div> </div> <div class="ui basic segment container content"> <div class="ui three column grid"> {% for article in vids_list %} <div class="column"> <a class="ui fluid card" href="{% url 'list' %}"> <div class="image"> {% if article.cover %} <img src="/upload/{{ article.cover }}" alt="" style="height:200px;object-fit: cover;"> {% else %} <img src="{{ article.url_image }}" alt="" style="height:200px;object-fit: cover;"> {% endif %} </div> </a> <div class="title header" href="{% url 'list' %}">{{ article.title }}</div> <i class="icon grey unhide"></i> <span style="color:#bbbbbb">{{ article.views }}</span> <span class="" style="color:rgb(226, 226, 226)">|</span> <i class="icon grey checkmark"></i> <span style="color:#bbbbbb"> {{ article.favs }} people got it</span> </div> {% endfor %} </div> </div> <div class="ui center aligned very padded vertical segment container"> <div class="ui pagination menu"> {% if vids_list.has_previous %} <a href="?page={{ vids_list.previous_page_number }}" class="item"> <i class="icon red left arrow"></i> </a> {% else %} <a href="?page={{ vids_list.start_index }}" class="disabled item"> <i class="icon left arrow"></i> </a> {% endif %} {% if vids_list.has_next %} <a href="?page={{ vids_list.next_page_number }}" class="item"> <i class="icon red right arrow"></i> </a> {% else %} <a href="?page={{ vids_list.end_index }}" class="disabled item"> <i class="icon right arrow"></i> </a> {% endif %} </div> </div></body></html>
register_login.html
<h4 class="ui inverted right aligned header"> {% if 'register' in request.path %} <a href="{% url 'login' %}" style="color:#ff695e;">or LOGIN</a> {% endif %} {% if 'login' in request.path %} <a href="{% url 'register' %}" style="color:#ff695e;">or REGISTER</a> {% endif %} </h4>
<!DOCTYPE html>{% load staticfiles %}<html><head> <meta charset="UTF-8"> <title>Login</title> <link rel="stylesheet" href="{% static 'css/semantic.css' %}" media="screen" title="no title" charset="utf-8"> <link rel="stylesheet" href="{% static 'css/list_custom.css' %}" media="screen" title="no title" charset="utf-8"> <link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Oswald|Raleway"> <style type="text/css"> body { background: url({% static 'images/super_blur_back2.jpg' %}); background-size: cover; } .ui.grid.divided.segment.container { min-height: 400px; width: 600px !important; border: rgba(255, 0, 0, 0); position: absolute; left: 50%; top: 40%; transform: translate(-50%, -50%); } .five.wide.column { background: url({% static 'images/red_regi.jpg' %}); background-size: cover; background-position: 60% 0%; } form { margin-top: 60px; } h1,h3,h4 { font-family: 'Play', sans-serif !important; } </style></head><body> <div class="ui grid divided segment container"> <div class="five wide column"> <h4 class="ui inverted header"> <i class="angle left icon"></i> </h4> <h1 class="ui inverted center aligned header" style="font-size: 40px;margin-top:55px"> <p class="sub header">Welcome to</p>GeekHome </h1> </div> <div class="eleven wide column"> <h4 class="ui inverted right aligned header"> {% if 'register' in request.path %} <a href="{% url 'login' %}" style="color:#ff695e;">or LOGIN</a> {% endif %} {% if 'login' in request.path %} <a href="{% url 'register' %}" style="color:#ff695e;">or REGISTER</a> {% endif %} </h4> <form class="ui form error" method="post"> {% if form.errors %} <div class="ui error message"> {{ form.errors }} </div> {% for field in form %} <div class="{{ field.errors|yesno:'error, ' }} field"> {{ field.label }} {{ field }} </div> {% endfor %} {% else %} {% for field in form %} <div class="field"> {{ field.label }} {{ field }} </div> {% endfor %} {% endif %} {% csrf_token %} <button class="ui inverted red circular right floated button" type="submit">Done</button> </form> </div> </div></body></html>
阅读全文
0 0
- 实现用户注册与登录、登出(三)
- 实现用户注册与登录、登出(一)
- 实现用户注册与登录、登出(二)
- APICloud技巧 | 用户登录与登出的实现方法
- 使用Forms Authentication实现用户注册、登录 (二)用户注册与登录
- 实现PHP用户的注册与登录
- 实现PHP用户的注册与登录 .
- 用户注册与登录功能的实现
- Spring Boot / Spring MVC 入门实践 (三) : 入门项目介绍与用户注册登录的实现
- Spring Boot / Spring MVC 入门实践 (三) : 入门项目介绍与用户注册登录的实现
- 使用Forms Authentication实现用户注册、登录 (三)用户实体替换
- django 登录与登出
- spring boot MVC 三 用户注册和登录的实现
- 网站用户登录注册实现
- 用纯jsp实现用户的登录、注册与退出
- struts2连接数据库实现用户注册与登录
- java 与数据库连接 实现用户的注册和登录
- java 与数据库连接 实现用户的注册和登录
- java TCP/IP Socket编程-----NIO--TCP信道-----笔记11
- Linux 信号(三)sigaction函数
- svn工具——菜单项功能备注
- Android 四种布局方式详解
- Android中的各种button
- 实现用户注册与登录、登出(三)
- java读取配置文件的方法
- iOS开发 防止button快速点击
- ELK日志分析系统搭建
- 套接字与FIFO
- Linux--搭建postfix邮件服务器
- JProfiler入门教程-简单的java程序性能调优
- 在Linux系统Centos6.9安装locate命令
- html注册失败跳转页面