zoukankan      html  css  js  c++  java
  • 2.2 用户登录

    目录

    1.新建account app

    python3.6 manage.py startapp account

    2.编辑mysite/settings.py 注册app

    INSTALLED_APPS = [
        'django.contrib.admin',
        'django.contrib.auth',
        'django.contrib.contenttypes',
        'django.contrib.sessions',
        'django.contrib.messages',
        'django.contrib.staticfiles',
        'blog',
        'account',
    ]

    3.修改 mysite/urls.py 和 account/urls.py

    mysite/urls.py

    from django.conf.urls import url
    from django.contrib import admin
    from django.conf.urls import include
    
    urlpatterns = [
        url(r'^admin/', admin.site.urls),
        url('blog/', include('blog.urls',namespace="blog")),
        url('account/', include('account.urls',namespace="account")),
    ]

    account/urls.py

    from django.conf.urls import url
    from . import views
    
    urlpatterns = [
        url(r'^login$',views.user_login,name="user_login"),
    ]

      

     4.新建表单类

    新建并编辑 account/forms.py

    from django import forms
    
    class LoginForm(forms.Form):
        username = forms.CharField()
        password = forms.CharField(widget = forms.PasswordInput)

    当不和数据库进行写交互的时候,就用这个 forms.Form

    5.编辑account/views.py

    # -*- coding: utf-8 -*-
    from __future__ import unicode_literals
    
    from django.shortcuts import render
    from django.http import HttpResponse
    from django.contrib.auth import authenticate , login
    from .forms import LoginForm
    
    # Create your views here.
    def user_login(request):
        if request.method == "POST":
            login_form = LoginForm(request.POST)
            if login_form.is_valid():
                cd = login_form.cleaned_data
                user = authenticate(username=cd["username"],password=cd["password"])
                if user:
                    login(request,user)
                    return HttpResponse("authenticated successful")
                else:
                    return HttpResponse("authenticated failed")
            else:
                return HttpResponse("invalid login")
        if request.method == "GET":
            login_form = LoginForm()
            print(login_form)
            return render(request,"account/login.html",{"form":login_form})

    6. 新建并编辑 templates/account/login.html

    {% extends "base.html" %}
    {% block title%}Login{% endblock %}
    {% block content%}
        <div class="row text-center vertical-middle-sm">
            <h1>login</h1>
            <p>input your username and password:</p>
            <form class ="form-horizontal" action ="" method="post">{% csrf_token %}
                {{ form.as_p}}
                <input type="submit" value="Login">
            </form>
        </div>
    {% endblock %}

     

     7.浏览器打开 http://192.168.56.101:8800/account/login

  • 相关阅读:
    Jenkins 的安装部署
    Python /usr/bin/python
    java学习基础 项目
    Java 并行与并发
    c# 将一个窗体显示在主窗体中
    java.io.IOException: open failed: EACCES (Permission denied) 问题解决
    android中创建模拟器的 SDCard
    Android学习笔记__2__Android工程目录结构
    Android学习笔记__3__Android应用程序组成
    Android学习笔记__1__Android体系架构
  • 原文地址:https://www.cnblogs.com/yaoyuanchun/p/13970916.html
Copyright © 2011-2022 走看看