def get(self): student_no = self.request.get('student_no') user_key = db.Key.from_path('User', student_no) user = db.get(user_key) grades = core.jwc.Grades(student_no, user.passwd) content = grades.getGrades() if not content: # 如果此时网站不能正常访问,则加入列表,自动后台 cron job # add to list. template_values = { 'user': user } template = jinja_environment.get_template('wait-for-email.html') self.response.out.write(template.render(template_values)) return logging.info('%s done.' % student_no) passwd = user.passwd # backup email = user.email db.delete(user_key) # delete from list. user_done = models.User_done(key_name=student_no) # add to done_list. user_done.student_no = student_no user_done.passwd = passwd user_done.email = email user_done.done_date = util.time_now() # +8. user_done.put() # store template_values = { 'content': grades.getGrades() } template = jinja_environment.get_template('showgrades.html') self.response.out.write(template.render(template_values))
def get_kline(self, symbol, period='1day', fqType='normal', begin=None, end=None, dataframe=True): if end is None: end = util.time_now() if isinstance(begin, str): begin = util.date_to_timestamp(begin) if isinstance(end, str): end = util.date_to_timestamp(end) try: response = self.session.get( connection.URL_XUEQIU_KLINE(symbol=symbol, period=period, fqType=fqType, begin=begin, end=end), headers=connection.HEADERS_XUEQIU,proxies=connection.proxies, timeout=3 ) kline = response.json() # time.sleep(0.5) except Exception as e: self.logger.warning("{}".format(e)) self.logger.info(response.text) time.sleep(3) return False if kline["success"] == 'true': if dataframe: if (kline["chartlist"] is not None) and (kline["chartlist"] != []): df = DataFrame.from_records(kline["chartlist"]) df["time"] = pandas.to_datetime(df["time"]) df["time"] += timedelta(hours=8) df["symbol"] = symbol return df else: return DataFrame() else: return kline["chartlist"] else: return None
def post(self): uid = self.request.get('uid') passwd = self.request.get('passwd') email = self.request.get('email') if len(uid)<8 or len(passwd)<6 or len(email)<5: # TODO 验证不符合要求的输入 self.redirect('/') try: user = models.User(key_name=uid) # uid is key. user.student_no = uid user.passwd = passwd user.email = email user.date = util.time_now() # +8. user.put() # store self.redirect('/getgrades?' + urllib.urlencode({'student_no': uid})) except: self.redirect('/')
logging.info('begin cron tasks.') newUsers = db.GqlQuery("SELECT * " "FROM User " "ORDER BY date ASC") succeed = 0 for user in newUsers: grades = core.jwc.Grades(user.student_no, user.passwd) content = grades.getGrades() if content: succeed += 1 util.SendMail(user.email, user.student_no, content) student_no = user.student_no passwd = user.passwd # backup email = user.email db.delete(user) # delete from list. user_done = models.User_done(key_name=student_no) # add to done_list. user_done.student_no = student_no user_done.passwd = passwd user_done.email = email user_done.done_date = util.time_now() # +8. user_done.put() # store else: if succeed == 0: break else: time.sleep(1) logging.info('%d user succeed.', succeed)
from sklearn.preprocessing import StandardScaler import settings.para_pre as para import util import os import pandas as pd import numpy as np import matplotlib.pyplot as plt import seaborn as sns # -------------------------------------------------------------------------------------- # Main script # -------------------------------------------------------------------------------------- if __name__ == '__main__': print('[{}] Program starts'.format(util.time_now()), "(" + str(para.PARA_FUNCTION) + "_" + str(para.VERSION) + ")") # region Reading data - target, test and their settings and formatting to DataFrames print('[{}] Reading data from: '.format(util.time_now()), para.RAW_INPUT_PATH) train_df = pd.read_csv(os.path.join(para.RAW_INPUT_PATH, 'train.csv')) test_df = pd.read_csv(os.path.join(para.RAW_INPUT_PATH, 'test.csv')) print('Training data shape (original): ', train_df.shape) print('Test data shape: (original)', test_df.shape) train, test, target, train_id, test_id, train_label = util.format_input( train_df=train_df, test_df=test_df, id_label=para.ID_LABEL,
import gc import settings.para as para import util import os import pandas as pd import numpy as np import matplotlib.pyplot as plt import seaborn as sns # -------------------------------------------------------------------------------------- # Main script # -------------------------------------------------------------------------------------- if __name__ == '__main__': print('[{}] Program starts'.format(util.time_now()), "(" + str(para.PARA_FUNCTION) + "_" + str(para.VERSION) + ")") # initiate h2o h2o.init(port=5432) # region Reading data - target, test and their settings and formatting to DataFrames print('[{}] Loading data from: '.format(util.time_now()), para.RESOURCE_PATH) print('Data set with suffix:', para.INPUT_SUFFIX) # Set data type (skipped) train_df = h2o.import_file(os.path.join(para.RESOURCE_PATH, 'train' + para.INPUT_SUFFIX + '.csv')) test_df = h2o.import_file(os.path.join(para.RESOURCE_PATH, 'test' + para.INPUT_SUFFIX + '.csv')) target = h2o.import_file(os.path.join(para.RESOURCE_PATH, 'target.csv')) print('Training data shape (original): ', train_df.shape)