91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

利用django框架怎么實現一個用戶注冊、登錄功能

發布時間:2021-01-12 15:02:16 來源:億速云 閱讀:297 作者:Leah 欄目:開發技術

這篇文章將為大家詳細講解有關利用django框架怎么實現一個用戶注冊、登錄功能,文章內容質量較高,因此小編分享給大家做個參考,希望大家閱讀完這篇文章后對相關知識有一定的了解。

1 用戶注冊:

from django.contrib import auth
from django.contrib.auth.models import User
from django.views.decorators.csrf import csrf_exempt
from django.http import HttpResponseRedirect
# 用戶注冊
@csrf_exempt
def register(request):
  errors = []
  account = None
  password = None
  password2 = None
  email = None
  CompareFlag = False
  if request.method == 'POST':
    if not request.POST.get('account'):
      errors.append('用戶名不能為空')
    else:
      account = request.POST.get('account')
    if not request.POST.get('password'):
      errors.append('密碼不能為空')
    else:
      password = request.POST.get('password')
    if not request.POST.get('password2'):
      errors.append('確認密碼不能為空')
    else:
      password2 = request.POST.get('password2')
    if not request.POST.get('email'):
      errors.append('郵箱不能為空')
    else:
      email = request.POST.get('email')
    if password is not None:
      if password == password2:
        CompareFlag = True
      else:
        errors.append('兩次輸入密碼不一致')
    if account is not None and password is not None and password2 is not None and email is not None and CompareFlag :
      user = User.objects.create_user(account,email,password)
      user.save()
      userlogin = auth.authenticate(username = account,password = password)
      auth.login(request,userlogin)
      return HttpResponseRedirect('/blog')
  return render(request,'blog/register.html', {'errors': errors})

2 用戶登錄:

@csrf_exempt
def my_login(request):
  errors =[]
  account = None
  password = None
  if request.method == "POST":
    if not request.POST.get('account'):
      errors.append('用戶名不能為空')
    else:
      account = request.POST.get('account')
    if not request.POST.get('password'):
      errors = request.POST.get('密碼不能為空')
    else:
      password = request.POST.get('password')
    if account is not None and password is not None:
      user = auth.authenticate(username=account,password=password)
      if user is not None:
        if user.is_active:
          auth.login(request,user)
          return HttpResponseRedirect('/blog')
        else:
          errors.append('用戶名錯誤')
      else:
        errors.append('用戶名或密碼錯誤')
  return render(request,'blog/login.html', {'errors': errors})

3 用戶退出:

def my_logout(request):
  auth.logout(request)
  return HttpResponseRedirect('/blog')

URL:

urlpatterns = [
  url(r'^$', views.index, name='index'),
  url(r'^p/(?P<article_id>[0-9]+)/$', views.detail,name='detail'),
  url(r'^register/$',views.register, name='register'),
  url(r'^login/$',views.my_login, name='my_login'),
  url(r'^logout/$',views.my_logout, name='my_logout'),
]

注冊 HTML:

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <title>Title</title>
</head>
<body>
{% if errors %}
    <li>
      {% for error in errors %}
       <p >
        {{error}}
       </p>
       {% endfor %}
    </li>
  {% endif %}
<table>
  <form action="" method="post">{% csrf_token %}
    <tr>
      <td>
        <label >用戶名:</label>
      </td>
      <td>
        <input type = 'text' placeholder="輸入用戶名" name = 'account'>
      </td>
    </tr>
    <tr>
      <td>
        <label >密碼:</label>
      </td>
      <td>
       <input type = 'password' placeholder="輸入密碼" name = 'password'>
      </td>
    </tr>
     <tr>
       <td>
        <label >確認密碼:</label>
       </td>
       <td>
         <input type = 'password' placeholder="再次輸入密碼" name ='password2'>
       </td>
     </tr>
     <tr>
       <td>
         <label>郵箱:</label>
       </td>
       <td>
         <input type="email" placeholder="輸入郵箱" name = 'email'>
       </td>
     </tr>
     <tr>
       <td>
          <input type = 'submit' placeholder="Login" value="登錄">
       </td>
     </tr>
  </form>
</table>
</body>
</html>

登錄HTML:

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <title>Title</title>
</head>
<body>
<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <title>登錄</title>
</head>
<body>
{% if errors %}
    <li>
      {% for error in errors %}
       <p >
        {{error}}
       </p>
       {% endfor %}
    </li>
  {% endif %}
<table>
  <form action="" method="post">{% csrf_token %}
    <tr>
      <td>
        <label >用戶名:</label>
      </td>
      <td>
        <input type = 'text' placeholder="輸入用戶名" name = 'account'>
      </td>
    </tr>
    <tr>
      <td>
        <label >密碼:</label>
      </td>
      <td>
       <input type = 'password' placeholder="輸入密碼" name = 'password'>
      </td>
    </tr>
     <tr>
       <td>
          <input type = 'submit' placeholder="Login" value="登錄">
       </td>
     </tr>
  </form>
</table>
</body>
</html>
</body>
</html>

關于利用django框架怎么實現一個用戶注冊、登錄功能就分享到這里了,希望以上內容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

济源市| 太仓市| 崇文区| 吴忠市| 南江县| 宁乡县| 榆林市| 桃园县| 阜新市| 闵行区| 清远市| 靖边县| 马龙县| 浪卡子县| 米泉市| 广宗县| 台南市| 阳曲县| 巴林左旗| 宁蒗| 镇雄县| 汝阳县| 二连浩特市| 滨州市| 抚顺市| 邵阳市| 调兵山市| 明星| 防城港市| 涟水县| 凭祥市| 阿瓦提县| 蒙城县| 类乌齐县| 商都县| 荣昌县| 阿图什市| 闸北区| 临泉县| 灵宝市| 信丰县|