Django实现简单的用户登录

版权声明:原创博客,请勿用于商业用途,转载请说明出处 https://blog.csdn.net/qq_40279964/article/details/82633142

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,需要改进的地方还很多,但简单易懂,适合刚刚学习而无从下手的人(本人就是)。后续会更新连接数据库后的登录,以及注册。

猜你喜欢

转载自blog.csdn.net/qq_40279964/article/details/82633142