djangoパッケージされたloginとlogoutは全プロセスで実現

13280 ワード

djangoパッケージでログインを実現

  • は,登録から登録までの完全な登録がネット上で見つからなかったため,インタフェースに入ってセッションIDを検証し,最後にセッションIDを削除するプログラムを登録した.だから各道の大神の方法を見てから簡単なプログラムを書きました.

  • 1.djangoプロジェクトを作成し、uauthというappを構築します。具体的な方法は前の文章を見ることができます。


    2.プロファイル、setting.py , init.pyこれらはすべて前の構成と同じです


    3.データベースを移行し、自分でテーブルを作成する必要はありません。


    4.主工事下urls.pyファイル

    rom django.conf.urls import url, include
    from django.contrib import admin
    
    from uauth import views
    
    urlpatterns = [
        url(r'^admin/', admin.site.urls),
        #  , ,django , , 
        url(r'^accounts/profile/', views.myIndex),
        url(r'^uauth/', include('uauth.urls', namespace='uauth')),
    ]

    5.app uauthファイルの下にurlsを作成する.pyファイル、具体的な内容は以下の通りです

    from django.conf.urls import url
    #  , , 
    from django.contrib.auth.views import login, logout
    
    from uauth import views
    
    urlpatterns = [
        #  , 
        url(r'^accounts/login/$', login),
        #  ,  
        url(r'^accounts/logout/$', logout),
        #   , 
        url(r'^createuser/', views.createUser),
    ]

    6. views.pyファイルへの追加方法

    from django.http import HttpResponse, HttpResponseRedirect
    from django.shortcuts import render
    from django.contrib.auth.models import User
    from django.contrib import auth
    
    # Create your views here.
    
    
    #  
    def createUser(request):
        if request.method == 'GET':
            return render(request, 'register.html')
        if request.method == 'POST':
            username = request.POST.get('username')
            upassword = request.POST.get('password')
            #  
        user = User.objects.create_user(
            username=username,
            password=upassword
        )
        user.is_staff = True
        user.save()
        #  , 
        return HttpResponse(' ')
    
    
    #  sesstion ID  
    def myIndex(request):
        if request.user.is_authenticated():
            return render(request, 'index.html')
        else:
            #  
            return HttpResponseRedirect('/uauth/accounts/login/')

    7.自分でHTMLファイルを作成する

  • メインプロジェクトディレクトリの下にtemplatesフォルダを作成し、settingsでパス
  • を構成します.
  • templatesフォルダの下にregistrationというフォルダを作成し、下にloginという名前を置きます.htmlファイル
  • 名前を間違えたり、templatesの下で直接作成したりしないでください.そうしないと、loginメソッドはページ
  • を見つけることができません.
  • 他の登録ページとホームページは、templatesの下に
  • に直接置かれています.
  • login.htmlでプライマリユーザー名とパスワードが必要なnameは、必ず以下と一致する
  • 注意postリクエストの発行には必ず後に{%csrf_token%}を付ける
    
    
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title> title>
    head>
    <body>
         <form action="/uauth/accounts/login/" method="post">
             {% csrf_token %}
             <label for="username">User name:label>
             <input type="text" name="username" value="" id="username">
             <label for="password">Password:label>
             <input type="password" name="password" value="" id="password">
    
            <input type="submit" value="login" />
            <input type="hidden" name="next" value="{{ next|escape }}" />
             <br />
             <a href="/uauth/createuser/">registera>
     form>
    body>
    html>
  • register.html
  • 
    
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title> title>
    head>
    <body>
         <form action="" method="post">
             {% csrf_token %}
             <label for="username">User name:label>
             <input type="text" name="username" value="" id="username">
             <label for="password">Password:label>
             <input type="password" name="password" value="" id="password">
    
            <input type="submit" value="regiset" />
     form>
    body>
    html>
  • index.html
  • 
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>hellotitle>
    head>
    <body>
        <h4>hello, world!h4>
        <a href="/uauth/accounts/logout/">logouta>
    body>
    html>
  • すべてのコードを見たいならここですべてのコードを見つけることができます