Django實現簡單的用戶登錄

Django實現簡單的用戶登錄

(未連接數據庫)最基礎的模型

由於本人第一次寫博客,不足之處還請大家多多指教。
昨天到現在學習了Django的一些基礎,如加載靜態文件,url傳遞參數,url命名以及反向解析等,這些以後都會在博客裏陸續提到。
有了以上的基礎以後,今天晚上就寫了一個簡單的登錄模型,爲後續連接數據庫做做準備。

項目名–myshop
app名–zhihu(本人隨便起的)

1.首先要配置兩個urls.py文件,myshop下的urls.py配置如下:

注:這裏由於只展示登錄模塊,先把不需要的註釋掉

#from django.conf.urls import url
#from django.contrib import admin
from django.conf.urls import url, include

urlpatterns = [
    #url(r'^admin/', admin.site.urls),
    #url(r'^hello/',include('hello.urls')),
    #通過項目名(zhihu)指向該項目下的urls.py
    url(r'^zhihu/',include('zhihu.urls')),
]

zhihu下的urls.py配置如下:

from django.conf.urls import url
from . import views

urlpatterns=[
    #前臺登陸頁面
    url(r'^login/$', views.login, name='login'),
    #登錄驗證
    url(r'^do_login/$', views.do_login, name='do_login'),
]

2.然後配置zhihu下的views.py:

注:這裏只是簡單的對用戶名和密碼進行了驗證

from django.shortcuts import render
from django.http import HttpResponse

#加載登錄頁面
def login (request):
    return render(request,'zhihu/login.html')

# 驗證登錄
def do_login(request):
    username = request.POST.get('username')
    password = request.POST.get('password')
    print(username+"  "+password)
    if username == 'admin' and password == '123456':
        return render(request, 'zhihu/index.html')
    else:
        return render(request, 'zhihu/login.html', {
            'username': username,
            'password': password
        })

3.下面是兩個簡單的頁面login.html:

form標籤中的action屬性,action=”{% url ‘do_login’ %}”,這裏指出了form表單要提交到zhihu中的views.py中的do_login方法去驗證這個表單

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <title>登錄</title>
</head>

<body>
    <div>
        <form action="{% url 'do_login' %}" method="post">
            {% csrf_token %}
            <label for="username">用戶名:</label>
            <input id="username" type="text" name="username" value="{{ username }}"><br />
            <label for="password">密碼:</label>
            <input id="password" type="password" name="password" value="{{ password }}"><br />
            <input type="submit" value="登錄">
        </form>
    </div>
</body>

</html>

index.html:

    <!DOCTYPE html>
    <html>
    <head>
        <meta charset="UTF-8">
        <title>主頁</title>
    <body>
        歡迎,{{ username }}
    </body>
    </html>

最後,我們來捋一遍思路:
1.首先在項目下的urls.py中配置路由,通過app名來指向到app下的urls.py繼續進行路由 。
2.然後通過login來標識是個登陸頁面,通過url(r’^login/$’, views.login, name=’login’),去執行app中的views.py的login方法。
3.然後

#加載登錄頁面
def login (request):
    return render(request,'zhihu/login.html')

通過此方法講login.html顯示。
4.登錄時, form標籤中的action屬性,action=”{% url ‘do_login’ %}” 提交到zhihu中的views.py中的do_login方法去驗證這個表單 。
5.如果驗證成功則顯示主頁,否則仍然返回登陸頁面

# 驗證登錄
def do_login(request):
    username = request.POST.get('username')
    password = request.POST.get('password')
    print(username+"  "+password)
    if username == 'admin' and password == '123456':
        return render(request, 'zhihu/index.html')
    else:
        return render(request, 'zhihu/login.html', {
            'username': username,
            'password': password
        })

總結,這個例子只是寫了一個登陸的demo,需要改進的地方還很多,但簡單易懂,適合剛剛學習而無從下手的人(本人就是)。後續會更新連接數據庫後的登錄,以及註冊。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章