나는 단일 데이터베이스 테이블에서 정보를 가져와 사용자에게 주간 업데이트 전자 메일을 보내는 python 스크립트를 가지고 있습니다. 구조를 정규화하고 모든 수사관 정보 (접두어, fname, lname 및 전자 메일)를 자체 테이블에 넣을 수 있도록 코드를 수정하는 방법을 찾고 싶습니다. 그러나 필자는 엘릭시어 모델과 파이썬 코드의 구조 내에서이를 어떻게 수행해야할지 모르겠다. 여기 python과 elixir를 사용하여 외래 키가있는 db 테이블을 사용하는 전자 메일 보내기
내 현재의 비약 모델 파일입니다from elixir import *
import auth as auth
au = auth.UserAuth()
metadata.bind = 'mysql://' + au.user + ':' + au.password + '@localhost/' + au.database
metadata.bind.echo = True
class Protocol(Entity):
id = Field(Integer, primary_key = True)
irb_no = Field(Text)
title = Field(Text)
prefix = Field(Text)
fname = Field(Text)
lname = Field(Text)
email = Field(Text)
action_date = Field(Date)
action = Field(Text)
approved = Field(Integer)
using_options(tablename = 'protocols')
def __repr__ (self):
return '%d' %(self.id)
그리고 여기 내 파이썬 스크립트입니다 : 그것은 비교적 간단한 변화해야한다처럼
import smtplib
import auth as auth
import ProtocolModel as PM
from elixir import *
from datetime import datetime
au = auth.UserAuth()
setup_all()
create_all()
table = PM.Protocol
records = table.query.all()
if len(records) == 0:
print 'No records in Table'
else:
for record in records:
setup_all()
if record.approved == 1:
print 'Completed'
else:
FROMADDR = au.google_user
LOGIN = FROMADDR
PASSWORD = au.google_password
TOADDRS = record.email
SUBJECT = "Weekly Research Update for " + record.irb_no + " - " + record.title
date1 = datetime.strptime(str(record.action_date), '%Y-%m-%d')
date2 = date1.strftime('%B %d, %Y')
msg = ("From: %s\r\nTo: %s\r\nSubject: %s\r\n\r\n" % (FROMADDR, ", ".join(TOADDRS), SUBJECT))
msg += 'Dear' + ' ' + record.prefix + ' ' + record.fname + ' ' + record.lname + ',' + '\n' + '\n'
msg += 'Our records indicate that the most recent action on your research protocol titled ' + record.title + ' was taken on ' + str(date2) +'.' +'\n'
msg += 'This action was: ' + record.action
server = smtplib.SMTP('smtp.gmail.com', 587)
server.set_debuglevel(1)
server.ehlo()
server.starttls()
server.login(LOGIN, PASSWORD)
server.sendmail(FROMADDR, TOADDRS, msg)
server.quit()
이 보인다,하지만 난 그냥 아니에요 이것에 대해 어떻게 가야하는지. 어떤 도움을 많이 주셔서 감사합니다, 감사합니다!