Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
django1.3中的内置密码重置视图问题_Django_Django Templates - Fatal编程技术网

django1.3中的内置密码重置视图问题

django1.3中的内置密码重置视图问题,django,django-templates,Django,Django Templates,您好,我是django的新手,现在我正在尝试内置重置密码视图。 我跟随链接 但是当我点击/password\u reset/上的reset password按钮时出现错误: 在/accounts/password\u reset/ [Errno 10061] No connection could be made because the target machine actively refused it. Exception Location: C:\Python27\lib\socket.p

您好,我是django的新手,现在我正在尝试内置重置密码视图。
我跟随链接 但是当我点击/password\u reset/上的reset password按钮时出现错误:
在/accounts/password\u reset/

[Errno 10061] No connection could be made because the target machine actively refused it.
Exception Location: C:\Python27\lib\socket.py in create_connection, line 571


  'urls.py'
(r“^accounts/password\u reset$”、'django.contrib.auth.views.password\u reset'、'template\u name':'user/password\u reset\u form.html'、'email\u template\u name':'user/password\u reset\u email.html')

(r'^accounts/password/reset/confirm/(?p[0-9A-Za-z]{1,13})-(?p[0-9A-z]{1,13}-[0-9A-Za-z]{1,20})/$,'django.contrib.auth.views.password_reset_confirm',{'template_name':'user/password_reset.html','post_reset_redirect':'/logout/')

(r'^accounts/password\u reset/done/$,'django.contrib.auth.views.password\u reset\u done',{'template\u name':'user/password\u reset\u done.html'}),
(r“^accounts/change\u password/$”、“password\u change”、{'post\u change\u redirect':“/accounts/change\u password/done/”),
(r“^accounts/change\u password/done/$”、“password\u change\u done”、{“template\u name”:“user/password\u change\u done.html”}),
密码\u重置\u email.html
{%extends'base.html%}
{%block content%}
{%url django.contrib.auth.views.password\u reset\u confirm uidb36=uid,token=token%}
{%endblock%}

我在“user”文件夹中添加了必要的模板。
请帮助我,提前谢谢。

您收到的错误是连接错误——这意味着您用于运行Django站点的服务器可能无法正常工作。以下是您可以在Django服务器上尝试的一些方法:

  • 如果您正在通过
    python manage.py runserver
    运行Django站点,您可以尝试重新运行该命令
  • 如果您是通过apache这样的Web服务器运行站点,请尝试重新启动apache

如果两者都不起作用,请发表评论,让我知道您运行站点的操作系统以及运行方式,我们可以进行进一步调试。

正如rdegges所说,这是一个连接错误。检查请求试图访问的端口,并确保windows防火墙已设置为在该端口上接收。您可以通过查看django的回溯页面并查看“本地变量”来检查端口

从外观上看,它是一个电子邮件端口。再看一下回溯,看看django是否试图向端口25发送请求。如果是,请确保端口25已配置为接收

此外,出于测试目的,您需要一个临时的SMTP服务器,因为您可能不想使用真正的SMTP服务器。只要在运行django时在单独的命令提示符窗口中运行此命令,django尝试通过端口25发送的任何电子邮件都将保存在工作目录中的“emails”文件夹中

#/usr/bin/env python

from datetime import datetime
import asyncore
from smtpd import SMTPServer

class EmlServer(SMTPServer):
    no = 0
    def process_message(self, peer, mailfrom, rcpttos, data):
        filename = '%s-%d.eml' % (datetime.now().strftime('%Y%m%d%H%M%S'), self.no)
        f = open(filename, 'w')
        f.write(data)
        f.close()
        print '%s saved.' % filename
        self.no += 1


def run():
    foo = EmlServer(('localhost', 25), None)
    try:
        asyncore.loop()
    except KeyboardInterrupt:
        pass


if __name__ == '__main__':

    from os.path import exists, join
    from os import mkdir, chdir, getcwd

    target_directory = join( getcwd(), "emails" )
    if exists(target_directory):
        chdir(target_directory)
    else:
        try:
            mkdir(target_directory)
        except OSError:
            from sys import exit
            exit("The containing folder couldn't be created, check your permissions.")
        chdir(target_directory)
    print "Using directory %s" % target_directory

    run()

我使用Windows7,并使用python manage.py runserver运行。[现在我在开发服务器中],是否可以使用Django中的内置开发服务器发送邮件?如何配置端口25?转到控制面板并打开“Windows防火墙”。然后,单击“高级设置”并添加一个新的入站规则,允许在端口25上进行通信(在验证是端口25导致问题,而不是另一个问题之后)。然后,确保您的端口25在网络上正确配置,就像您配置apache使用的端口(可能是80)一样。我可以使用开发服务器(django中内置的)来实现此目的吗,所以如果你想测试的话,你需要设置它。我将编辑一个文件以帮助调试smtp请求。只需在后台运行此程序,并确保在端口25上允许通信。您还需要确保django正在向“localhost:25”或正确配置的“domain.com:25”发出请求
#/usr/bin/env python

from datetime import datetime
import asyncore
from smtpd import SMTPServer

class EmlServer(SMTPServer):
    no = 0
    def process_message(self, peer, mailfrom, rcpttos, data):
        filename = '%s-%d.eml' % (datetime.now().strftime('%Y%m%d%H%M%S'), self.no)
        f = open(filename, 'w')
        f.write(data)
        f.close()
        print '%s saved.' % filename
        self.no += 1


def run():
    foo = EmlServer(('localhost', 25), None)
    try:
        asyncore.loop()
    except KeyboardInterrupt:
        pass


if __name__ == '__main__':

    from os.path import exists, join
    from os import mkdir, chdir, getcwd

    target_directory = join( getcwd(), "emails" )
    if exists(target_directory):
        chdir(target_directory)
    else:
        try:
            mkdir(target_directory)
        except OSError:
            from sys import exit
            exit("The containing folder couldn't be created, check your permissions.")
        chdir(target_directory)
    print "Using directory %s" % target_directory

    run()