Skip to content

Instantly share code, notes, and snippets.

View marknagelberg's full-sized avatar

Mark Nagelberg marknagelberg

View GitHub Profile
@marknagelberg
marknagelberg / app_deploy_test_ex_1.py
Created October 7, 2018 20:09
app_deploy_test_ex_1.py
def squared(x):
return x**2
def test_squared():
assert squared(3) == 9
assert squared(3) == 10
@marknagelberg
marknagelberg / convert_to_pdf.py
Created September 16, 2018 20:41
Code to Convert the 10 HTML files to PDF (as part of PDF in Python Blog Post)
import pdfkit
for i in range(1,11):
pdfkit.from_file(str(i) + '.html', str(i) + '.pdf')
@marknagelberg
marknagelberg / generate_html_reports.py
Created September 16, 2018 20:41
Generate HTML reports for PDF in Python Blog Post
import jinja2
templateLoader = jinja2.FileSystemLoader(searchpath="./")
templateEnv = jinja2.Environment(loader=templateLoader)
TEMPLATE_FILE = "pdf_interest_report.html"
template = templateEnv.get_template(TEMPLATE_FILE)
for d in data_frames:
outputText = template.render(df=d['df'],
interest_rate=d['interest_rate'])
@marknagelberg
marknagelberg / create_pandas_dfs.py
Created September 16, 2018 20:40
Creating Pandas Dataframes for PDF in Python Blog Post
import pandas as pd
interest_rates = [i*.01 for i in range(1,11)]
initial_account_sizes = [100, 500, 20000, 50000]
data_frames = []
for interest_rate in interest_rates:
df = {}
for initial_account_size in initial_account_sizes:
df['Account Size: ' + str(initial_account_size)] = [initial_account_size * (1 + interest_rate) ** year for year in range(1, 21)]
df = pd.DataFrame(df)
@marknagelberg
marknagelberg / render_name.py
Created September 16, 2018 20:38
render_name file for PDF Reports in Python Post
import jinja2
templateLoader = jinja2.FileSystemLoader(searchpath="./")
templateEnv = jinja2.Environment(loader=templateLoader)
TEMPLATE_FILE = "name.txt"
template = templateEnv.get_template(TEMPLATE_FILE)
outputText = template.render(name='Mark')
@marknagelberg
marknagelberg / pdf_reports_with_python_pdf_template.html
Created September 16, 2018 20:37
Template for PDF Python Reports Blog Poset
<head></head>
<body>
<h1>Interest Rate: {{ interest_rate * 100 }}%</h1>
<table>
<tr>
{% for column in df.columns %}
<th>{{ column }}</th>
{% endfor %}
</tr>
{% for idx, row in df.iterrows() %}
from flask import Flask, render_template, Blueprint
from .forms import NameForm
from .models import Name
from . import db
bp = Blueprint('app', __name__)
@bp.route('/', methods=['GET', 'POST'])
def home():
form = NameForm()
<h1>Hello World!</h1>
<br>
<h3>Please enter a name:</h3>
<form method=post>
{{ form.csrf_token }}
{{ form.name.label }}
{{ form.name}}
from flask_wtf import FlaskForm
from wtforms import StringField, SubmitField
from wtforms.validators import DataRequired
class NameForm(FlaskForm):
name = StringField('Enter a name', validators=[DataRequired()])
submit = SubmitField('Submit')
import os
from app import create_app
app = create_app(os.getenv('FLASK_CONFIG') or 'default')