Django 1.9 不会在链接中呈现正确的页面

2024-01-11

演示/urls.py

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

import views
from . import views

urlpatterns = patterns('demo.urls',
    url(r'^admin', admin.site.urls),
    url(r'^', views.login, name="login"),
    url(r'^resetpwd', views.resetpwd, name='resetpwd'),
    url(r'^mechanics/', include('mechanics.urls', namespace="mechanics")),
)

机械/urls.py

import views

from . import views

urlpatterns = patterns('mechanics.urls',
    url(r'^admin', include(admin.site.urls)),
    url(r'^$', views.login, name="login"),
    url(r'^resetpwd', views.resetpwd, name='resetpwd'),
    url(r'^loandelinquency', views.loandelinquency, name='loandelinquency'),
)

力学/views.py

from django.shortcuts import render
from django.http import HttpResponse
from django.template import loader
import cPickle

def loandelinquency(request):
    return render(request, 'mechanics/LoanDelinquency.html')

def login(request):
    try:
        users = cPickle.load(open('users.p', 'rb'))
    except:
        users = {'[email protected] /cdn-cgi/l/email-protection':'**********'}
        cPickle.dump(users, open('users.p', 'wb'))
    if request.method == 'POST':
        try:
            users = cPickle.load(open('users.p', 'rb'))
        except:
            users = {'[email protected] /cdn-cgi/l/email-protection':'**********'}
            cPickle.dump(users, open('users.p', 'wb'))
        user = request.POST.get('user','')
        pwd = request.POST.get('pwd', '')
        request.session['user'] = user
        request.session['pwd'] = pwd
        try:
            if user in users:
                if users[user] == pwd:
                    return render(request, 'mechanics/inside.html')
                else:
                    wronguser = ''
                    wrongpwd = 'Wrong password.'
                    return render(request, 'mechanics/login.html', {'wrongpwd': wrongpwd, 'wronguser':wronguser})
            else:
                wronguser = 'Wrong username'
                wrongpwd = ''
                return render(request, 'mechanics/login.html', {'wrongpwd': wrongpwd, 'wronguser':wronguser})
        except:
            return render(request, 'mechanics/login.html')
    if request.method == "GET":
        return render(request, 'mechanics/login.html')

def resetpwd(request):
    if request.method == 'GET':
        return render(request, "resetpwd.html")

力学/模板/力学/login.html

<html>
    <body>
        <title>Data Science Demo</title>
            <h1 align="center">Ninja's</h1>
                <br>
                <div align="center"><font size=24>Login</font>
                <br>
                    <form align="center" method="post">
                        {% csrf_token %}
                        E-mail<br>
                        <input type="text" align="center" name="user"><br>
                        Password<br>
                        <input type="password" align="center" name="pwd"><br>
                        <input type="submit" value="Submit">
                    {% if wrongpwd %}
                        <br>
                        <font color="red">{{ wrongpwd }}</font><br>
                    {% endif %}
                    {% if wronguser %}
                        <br>
                        <font color="red">{{ wronguser }}</font>
                    {% endif %}
                    </form>
                    <a href="{% url 'mechanics:resetpwd' %}">Reset Password</a>
                </div>
    </body>
</html>
<style>

div {
    position: relative;
    width: 300px;
    padding: 25px;
    border: 25px solid navy;
    margin: auto;
    background-color: #b0e0e6;
}
</style>

力学/模板/力学/resetpwd.html

<html>
    <title>Reset Password</title>
        <body>
            <p>You did it!</p>
        </body>
</html>

The <a href="{% url 'mechanics:resetpwd' %}">Reset Password</a>只是让我返回登录页面。它与我放入代码中的所有其他链接执行相同的操作。我该如何解决?


您需要在正则表达式末尾包含一个美元符号。

url(r'^$', views.login, name="login"),

没有美元符号,正则表达式r'^'将匹配所有 url,因此低于该模式的任何 url 模式都将被忽略。

您实际上可以删除此网址并resetpwd从根 url 配置中,因为您已经将这些视图包含在包含的mechanics.urls.

请注意,Django 附带认证系统 https://docs.djangoproject.com/en/1.9/topics/auth/。您应该使用它而不是尝试编写自己的。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Django 1.9 不会在链接中呈现正确的页面 的相关文章

随机推荐