Django-Tutorial: Django-Benutzerregistrierungs- und Anmeldemethode

高洛峰
Freigeben: 2017-03-10 13:49:38
Original
3172 Leute haben es durchsucht

In diesem Artikel werden hauptsächlich die relevanten Informationen zu Django-Benutzerregistrierungs- und Anmeldemethoden im Django-Tutorial vorgestellt. Freunde, die sie benötigen, können darauf zurückgreifen.

Django ist ein kostenloses Open-Source-Website-Framework, das von Python entwickelt wurde Wird verwendet, um schnell eine leistungsstarke, elegante Website zu erstellen!

Django zu lernen ist sehr schwierig, die einfachste Benutzeranmelde- und Registrierungsoberfläche zu erstellen. Obwohl die Funktion jetzt sehr einfach ist, werde ich eine Aufzeichnung erstellen und später darauf zurückkommen Ich lerne tiefer. Ergänzung:

Erstellen Sie zuerst das Projekt und gehen Sie in das Verzeichnis, in dem sich das Projekt befindet: django-admin startproject demo0414_userauth

Geben Sie das Projekt ein: cd demo0414_userauth

Erstellen Sie die entsprechende App:django-admin startapp-Konto

Das Strukturdiagramm des gesamten Projekts ist wie in der Abbildung dargestellt

├─ ─ Konto
│ ├── admin.py
│ ├── admin.pyc
│ ├── apps.py
│ ├── init.py
│ ├── init .pyc
│ ├── Migrationen
│ │ ├ ── 0001_initial.py
│ │ ├── 0001_initial.pyc
│ │ ├── init.py
│ │ └─ ─ init.pyc
│ ├── models.py
│ ├── models.pyc
│ ├── tests.py
│ ├── urls.py
│ ├─ ─ urls.pyc
│ ├── Views.py
│ └── Views.pyc
├── demo0414_userauth
│ ├── init.py
│ ├─ ─ init. pyc
│ ├── Settings.py
│ ├ ── Settings.pyc
│ ├── urls.py
│ ├── urls.pyc
│ ├──. wsgi . py
│ └── wsgi.pyc
├─ ─ manage.py
└── templates
├── register.html
├── success.html
└─ ─ userlogin.html

4 Verzeichnisse, 29 Dateien

Dann fügen Sie das App-Konto in der „installed_app“ der Einstellungsdatei hinzu;

Django-Tutorial: Django-Benutzerregistrierungs- und Anmeldemethode

Erstellen einen Vorlagenordner, der im Stammverzeichnis des Projekts oder im App-Verzeichnis abgelegt werden kann. Im Allgemeinen wird empfohlen, es im App-Verzeichnis abzulegen. Wenn Sie es im Stammverzeichnis des Projekts ablegen, müssen Sie „DIRS“ in TEMPLATES in der Einstellungsdatei festlegen: [os.path.join(BASE_DIR,'templates')], andernfalls kann die Vorlage nicht verwendet werden.

Django-Tutorial: Django-Benutzerregistrierungs- und Anmeldemethode

Da dieses Projekt außerdem Seitensprungprobleme aufweist, gibt es in der Vorlage relevante Einstellungen, um CSRF-Angriffe sicher zu verhindern. Ich weiß noch nicht, wie ich dieses Ding verwenden soll. Es wird gesagt, dass das Hinzufügen des Tags {% csrf_token %} zum Formular möglich ist, aber es ist mir nicht gelungen. Ignorieren Sie also zunächst dieses Problem, kommentieren Sie die Middleware „django.middleware.csrf.CsrfViewMiddleware“ in see

Django-Tutorial: Django-Benutzerregistrierungs- und Anmeldemethode

aus und erstellen Sie dann die entsprechende im Modell entsprechendes Programm zur Datenbank:

class User(models.Model):
 username = models.CharField(max_length=50)
 password = models.CharField(max_length=50)
 email = models.EmailField()
Nach dem Login kopieren

Ansicht. Pdb wurde für das Breakpoint-Debugging verwendet. Es hat mir sehr gut gefallen. Wenn Sie kein Interesse haben, kommentieren Sie einfach direkt.

#coding=utf-8
from django.shortcuts import render,render_to_response
from django import forms
from django.http import HttpResponse,HttpResponseRedirect
from django.template import RequestContext
from django.contrib import auth
from models import User

import pdb

def login(request): 
 if request.method == "POST":
  uf = UserFormLogin(request.POST)
  if uf.is_valid():
   #获取表单信息
   username = uf.cleaned_data['username']
   password = uf.cleaned_data['password']   
   userResult = User.objects.filter(username=username,password=password)
   #pdb.set_trace()
   if (len(userResult)>0):
    return render_to_response('success.html',{'operation':"登录"})
   else:
    return HttpResponse("该用户不存在")
 else:
  uf = UserFormLogin()
return render_to_response("userlogin.html",{'uf':uf})
def register(request):
 curtime=time.strftime("%Y-%m-%d %H:%M:%S",time.localtime());
 if request.method == "POST":
  uf = UserForm(request.POST)
  if uf.is_valid():
   #获取表单信息
   username = uf.cleaned_data['username']
   #pdb.set_trace()
   #try:
   filterResult = User.objects.filter(username = username)
   if len(filterResult)>0:
    return render_to_response('register.html',{"errors":"用户名已存在"})
   else:
    password1 = uf.cleaned_data['password1']
    password2 = uf.cleaned_data['password2']
    errors = []
    if (password2 != password1):
     errors.append("两次输入的密码不一致!")
     return render_to_response('register.html',{'errors':errors})
     #return HttpResponse('两次输入的密码不一致!,请重新输入密码')
    password = password2
    email = uf.cleaned_data['email']
   #将表单写入数据库
    user = User.objects.create(username=username,password=password1)
    #user = User(username=username,password=password,email=email)
    user.save()
    pdb.set_trace()
   #返回注册成功页面
    return render_to_response('success.html',{'username':username,'operation':"注册"})
 else:
  uf = UserForm()
return render_to_response('register.html',{'uf':uf})
class UserForm(forms.Form):
 username = forms.CharField(label='用户名',max_length=100)
 password1 = forms.CharField(label='密码',widget=forms.PasswordInput())
 password2 = forms.CharField(label='确认密码',widget=forms.PasswordInput())
 email = forms.EmailField(label='电子邮件')
class UserFormLogin(forms.Form):
 username = forms.CharField(label='用户名',max_length=100)
 password = forms.CharField(label='密码',widget=forms.PasswordInput())
Nach dem Login kopieren

Unter dem Tempaltes-Ordner befinden sich insgesamt 3 Seiten:

Register.html

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
 <title>用户注册</title>
</head>
 <style type="text/css">
 body{color:#efd;background:#453;padding:0 5em;margin:0}
 h1{padding:2em 1em;background:#675}
 h2{color:#bf8;border-top:1px dotted #fff;margin-top:2em}
 p{margin:1em 0}
 </style>
<body>
<h1>注册页面:</h1>
<form method = &#39;post&#39; enctype="multipart/form-data">
{{uf.as_p}}
{{errors}}
</br>
<input type="submit" value = "ok" />
</form>
</body>
</html>
Nach dem Login kopieren

Userlogin.html

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
 <title>用户注册</title>
</head>
 <style type="text/css">
 body{color:#efd;background:#453;padding:0 5em;margin:0}
 h1{padding:2em 1em;background:#675}
 h2{color:#bf8;border-top:1px dotted #fff;margin-top:2em}
 p{margin:1em 0}
 </style>
<body>
<h1>登录页面:</h1>
<form method = &#39;post&#39; enctype="multipart/form-data">
{{uf.as_p}}
<input type="submit" value = "ok" />
</form>
</body>
</html>
Nach dem Login kopieren

Success.html

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
 <title></title>
</head>
<body>
<form method = &#39;post&#39;>
 <h1>恭喜,{{operation}}成功!</h1>
</form>
</body>
</html>
Nach dem Login kopieren

Datenbank aktualisieren:

Django-Tutorial: Django-Benutzerregistrierungs- und Anmeldemethode

Server ausführen:

Django-Tutorial: Django-Benutzerregistrierungs- und Anmeldemethode

Registrierungsseite:

Django-Tutorial: Django-Benutzerregistrierungs- und Anmeldemethode

Wenn sich der registrierte Benutzer noch nicht registriert hat, können Sie sich erfolgreich registrieren und auf OK klicken Geben Sie die Erfolgsoberfläche ein

Anmeldeseite:

Django-Tutorial: Django-Benutzerregistrierungs- und Anmeldemethode

Klicken Sie auf OK, um die Erfolgsseite aufzurufen

Dies ist das Ende des Tutorials zur Django-Benutzerregistrierung und -Anmeldung. Ich hoffe, es wird Ihnen hilfreich sein!

Das obige ist der detaillierte Inhalt vonDjango-Tutorial: Django-Benutzerregistrierungs- und Anmeldemethode. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!