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