如何将django表单写入文本文件

时间:2011-05-19 21:00:00

标签: django django-forms

我正在创建一个django网站(使用django表单),让用户订阅他们的电子邮件。如何将该电子邮件发送到文本文件中?目前我有一个运行python脚本的cron作业,每天早上向所有订阅者发送电子邮件。这是最好的方法吗?或者django-forms中有一些我可以使用的内置功能?

1 个答案:

答案 0 :(得分:1)

如果我理解正确,您的电子邮件地址中的用户列表会保存到数据库中,并希望将该列表保存到文本文件中吗?

嗯,你可以进入./manage.py shell并输入类似的内容:

# I assumed the email addresses are in User.email; modify as needed to conform to your model.

with open('email.txt','w') as f:
    for u in User.objects.all(): 
        f.write(u.email + '\n')

您还可以编写管理命令来执行此操作: http://docs.djangoproject.com/en/dev/howto/custom-management-commands/

或创建一个简单的视图&用于创建包含列表中所有电子邮件地址的文本文件的模板。虽然为了您的用户不被垃圾邮件密码保护这一点,并且不要公开访问。像(非私人)这样简单的东西应该有效:

urls.py:

from django.views.generic.list_detail import object_list
urlpatterns = patterns('', 
                       (r'^full_emails/$', 'object_list', {'template': 'template/text.txt', 'queryset'=User.objects.all()}
)

模板/的text.txt:

{% for user in object_list %}
   {{ user.email }}
{% endfor %}