Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- This is the code(minus imports and sensitive info) for my python file
- app = Flask(__name__)
- app.config['SQLALCHEMY_DATABASE_URI'] = uri
- app.secret_key = 'supersecretkeydevtest'
- app.config['SQLALCHEMY_TRACK_MODIFICATIONS'] = False
- app.debug = True
- app.wsgi_app = DebuggedApplication(app.wsgi_app, True)
- db = SQLAlchemy(app)
- login_manager = LoginManager()
- login_manager.init_app(app)
- login_manager.login_view = 'login'
- admin = Admin(app)
- class User(db.Model):
- __tablename__ = 'User'
- can_create = False
- id = db.Column('id', db.Integer, primary_key=True)
- first = db.Column('first', db.String(15), nullable=False)
- last = db.Column('last', db.String(25), nullable=False)
- username = db.Column('username', db.String(80), unique=True, nullable=False)
- password = db.Column('password', db.String(80), nullable=False)
- phonenumber = db.Column('phonenumber', db.String(45), nullable=False)
- dob = db.Column('dob', db.DateTime, nullable=False)
- admin = db.Column('isadmin', db.Boolean, default=False, nullable=False)
- def __init__(self, first=None, last=None, username=None, password=None, phonenumber=None, dob=None):
- self.first = first
- self.last = last
- self.username = username
- self.password = password
- self.phonenumber = phonenumber
- self.dob = dob
- def type_formatter(view, value):
- pass
- def is_authenticated(self):
- return True
- def is_active(self):
- return True
- def is_anonymous(self):
- return False
- def get_id(self):
- return unicode(self.id)
- def __repr__(self):
- return self.username
- class Contact(db.Model):
- __tablename__ = 'Contact'
- id = db.Column('id', db.Integer, primary_key=True)
- first = db.Column('first', db.String(15), nullable=False)
- last = db.Column('last', db.String(25), nullable=False)
- street = db.Column('street', db.String(80), nullable=False)
- city = db.Column('city', db.String(80), nullable=False)
- state = db.Column('state', db.String(80), nullable=False)
- zipcode = db.Column('zipcode', db.String(80), nullable=False)
- phonenumber = db.Column('phonenumber', db.String(45), nullable=False)
- Policy = db.relationship('Policy', backref='contact', lazy='dynamic')
- def __repr__(self):
- return self.first
- class Policy(db.Model):
- __tablename__ = 'Policy'
- id = db.Column('id', db.Integer, primary_key=True)
- policy_number = db.Column('policy_number', db.Integer)
- policy_type = db.Column('policy_type', db.String(25))
- contact_id = db.Column(db.Integer, db.ForeignKey('Contact.id'))
- def __repr__(self):
- return self.policy_type
- class Letter(db.Model):
- __tablename__ = 'Letter'
- id = db.Column('id', db.Integer, primary_key=True)
- title = db.Column('title', db.String(25))
- description = db.Column('description', db.String(80))
- def __repr__(self):
- return self.id
- admin.add_view(ModelView(User, db.session))
- admin.add_view(ModelView(Contact, db.session))
- admin.add_view(ModelView(Policy, db.session))
- admin.add_view(ModelView(Letter, db.session))
- @login_manager.user_loader
- def load_user(id):
- return User.query.get(int(id))
- @app.route('/')
- @login_required
- def index():
- return render_template('index.html')
- @app.route('/reports')
- @login_required
- def reports():
- return render_template('reports.html')
- @app.route('/management')
- @login_required
- def management():
- return render_template('management.html')
- @app.route('/history')
- @login_required
- def history():
- return render_template('history.html')
- @app.route('/settings')
- @login_required
- def settings():
- return render_template('settings.html')
- @app.route('/login', methods=['GET','POST'])
- def login():
- if request.method == 'GET':
- return render_template('login.html')
- username = request.form['inputEmail']
- password = request.form['inputPassword']
- remember_me = False
- if 'remember_me' in request.form:
- remember_me = True
- registered_user = User.query.filter_by(username=username, password=password).first()
- if registered_user is None:
- flash('Username or Password is invalid', 'error')
- return redirect(url_for('login'))
- login_user(registered_user, remember=remember_me)
- flash('Logged in Successfully')
- return redirect(request.args.get('next') or url_for('index'))
- @app.route('/logout')
- def logout():
- logout_user()
- return redirect(url_for('index'))
- @app.route('/signup', methods=['GET', 'POST'])
- def signup():
- if request.method == 'GET':
- return render_template('signup.html')
- user = User(request.form['inputFirst'], request.form['inputLast'], request.form['inputEmail'], request.form['dob'], request.form['inputPassword'])
- db.session.add(user)
- db.session.commit()
- flash('User successfully created!')
- return redirect(url_for('login'))
- @app.route('/profile/<name>')
- @login_required
- def profile():
- return render_template('profile.html', name=name)
- @app.route('/admin')
- @login_required
- def admin():
- return render_template('admin.html')
- @app.route('/genreport/<policy_id>')
- def pdf_template(policy_id):
- policy = Policy.get(policy_id)
- rendered = render_template('letters/listing.html', policy=policy)
- pdf = pdfkit.from_string(rendered, False)
- response = make_response(pdf)
- response.headers['Content-Type'] = 'application/pdf'
- response.headers['Content-Disposition'] = 'inline; filename=output.pdf'
- return response
- if __name__ == '__main__':
- app.run(host='0.0.0.0')
- _________________________________________________________________________________________________________________________
- This is the error i am receiving when i go to /genreport/1891651 which is a generic fake account created for testing purposes. the policy number is linked to a user. not sure why there is no get function.
- Traceback (most recent call last):
- File "/home/ubuntu/myproject/myprojectenv/lib/python2.7/site-packages/flask/app.py", line 1985, in wsgi_app
- response = self.handle_exception(e)
- File "/home/ubuntu/myproject/myprojectenv/lib/python2.7/site-packages/flask/app.py", line 1540, in handle_exception
- reraise(exc_type, exc_value, tb)
- File "/home/ubuntu/myproject/myprojectenv/lib/python2.7/site-packages/flask/app.py", line 1982, in wsgi_app
- response = self.full_dispatch_request()
- File "/home/ubuntu/myproject/myprojectenv/lib/python2.7/site-packages/flask/app.py", line 1614, in full_dispatch_request
- rv = self.handle_user_exception(e)
- File "/home/ubuntu/myproject/myprojectenv/lib/python2.7/site-packages/flask/app.py", line 1517, in handle_user_exception
- reraise(exc_type, exc_value, tb)
- File "/home/ubuntu/myproject/myprojectenv/lib/python2.7/site-packages/flask/app.py", line 1612, in full_dispatch_request
- rv = self.dispatch_request()
- File "/home/ubuntu/myproject/myprojectenv/lib/python2.7/site-packages/flask/app.py", line 1598, in dispatch_request
- return self.view_functions[rule.endpoint](**req.view_args)
- File "/home/ubuntu/myproject/myproject.py", line 197, in pdf_template
- policy = Policy.get(policy_id)
- AttributeError: type object 'Policy' has no attribute 'get'
Advertisement
Add Comment
Please, Sign In to add comment