Beispiel #1
0
def show_stocks(searchterm = '', page = None):
	search = SearchForm()
	db = Db()
	SQL = "SELECT ticker, company_name FROM stocks WHERE ticker LIKE %s OR company_name LIKE %s ORDER BY ticker;"
	data =  ('%', '%')	
	if search.validate_on_submit():
		search_data = search.search.data
		data = (search_data + '%', search_data + '%')
		db.execute(SQL, data)
		entries = [dict(ticker = row[0], company = row[1]) for row in db.fetchall()]
		return render_template('index.html', search = SearchForm(),  entries = entries)

	else:
		db.execute(SQL, data)
		entries = [dict(ticker = row[0], company = row[1]) for row in db.fetchall()]
		return render_template('index.html',search = search, entries=entries)
Beispiel #2
0
def show_stock(ticker = None):
	form = StockForm()
	db = Db()
	SQL = "SELECT company_name FROM stocks where ticker = %s;"
	data = (ticker,)
	db.execute(SQL, data)
	company = db.fetchall()[0][0]
	price_SQL = "SELECT open_price, close_price, high, low, pdate FROM stock_prices WHERE ticker = %s ORDER BY pdate;"
	volume_SQL = "SELECT volume, vdate FROM stock_volumes where ticker = %s ORDER BY vdate;"
	dividend_SQL = "SELECT price, ddate from stock_dividends where ticker = %s ORDER BY ddate;"
	price_dates = []
	open_prices = []
	high_prices = []
	low_prices  = []
	close_prices = []
	volumes = []
	dividends = []	
	db.execute(price_SQL, data)	
	for row in db.fetchall():
		date_js = int(time.mktime(row[4].timetuple())) * 1000
		open_prices.append([date_js, float(row[0])])
		high_prices.append([date_js, float(row[2])])
		low_prices.append([date_js,  float(row[3])])
		close_prices.append([date_js, float(row[1])])
	db.execute(volume_SQL, data)
	for row in db.fetchall():
		date_js = int(time.mktime(row[1].timetuple())) * 1000
		volumes.append([date_js, float(row[0])])
	db.execute(dividend_SQL, data)
	for row in db.fetchall():
		date_js = int(time.mktime(row[1].timetuple())) * 1000
		dividends.append([date_js, float(row[0])])
	if form.validate_on_submit():
		date = str(form.date_field.data).split()[0]
		nyt = NYT_Parser()
		nyt.find_articles(company, date)
		articles = nyt.get_news()
		return render_template('stock.html', form = form, open_prices = open_prices,close_prices = close_prices, volumes = volumes, dividends = dividends, company = company, ticker = ticker, validated = True, articles = articles) 
	else:
		return render_template('stock.html', form = form, open_prices = open_prices,close_prices = close_prices, volumes = volumes, dividends = dividends, company = company, ticker = ticker)