Guest User

Untitled

a guest
Nov 14th, 2017
147
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 7.28 KB | None | 0 0
  1. This is the code(minus imports and sensitive info) for my python file
  2.  
  3. app = Flask(__name__)
  4.  
  5. app.config['SQLALCHEMY_DATABASE_URI'] = uri
  6. app.secret_key = 'supersecretkeydevtest'
  7. app.config['SQLALCHEMY_TRACK_MODIFICATIONS'] = False
  8. app.debug = True
  9. app.wsgi_app = DebuggedApplication(app.wsgi_app, True)
  10.  
  11. db = SQLAlchemy(app)
  12. login_manager = LoginManager()
  13. login_manager.init_app(app)
  14. login_manager.login_view = 'login'
  15.  
  16. admin = Admin(app)
  17.  
  18.  
  19. class User(db.Model):
  20.     __tablename__ = 'User'
  21.     can_create = False
  22.     id = db.Column('id', db.Integer, primary_key=True)
  23.     first = db.Column('first', db.String(15), nullable=False)
  24.     last = db.Column('last', db.String(25), nullable=False)
  25.     username = db.Column('username', db.String(80), unique=True, nullable=False)
  26.     password = db.Column('password', db.String(80), nullable=False)
  27.     phonenumber = db.Column('phonenumber', db.String(45), nullable=False)
  28.     dob = db.Column('dob', db.DateTime, nullable=False)
  29.     admin = db.Column('isadmin', db.Boolean, default=False, nullable=False)
  30.  
  31.     def __init__(self, first=None, last=None, username=None, password=None, phonenumber=None, dob=None):
  32.         self.first = first
  33.         self.last = last
  34.         self.username = username
  35.         self.password = password
  36.         self.phonenumber = phonenumber
  37.         self.dob = dob
  38.  
  39.     def type_formatter(view, value):
  40.         pass
  41.  
  42.     def is_authenticated(self):
  43.         return True
  44.  
  45.     def is_active(self):
  46.         return True
  47.  
  48.     def is_anonymous(self):
  49.         return False
  50.  
  51.     def get_id(self):
  52.         return unicode(self.id)
  53.  
  54.     def __repr__(self):
  55.         return self.username
  56.  
  57.  
  58. class Contact(db.Model):
  59.     __tablename__ = 'Contact'
  60.     id = db.Column('id', db.Integer, primary_key=True)
  61.     first = db.Column('first', db.String(15), nullable=False)
  62.     last = db.Column('last', db.String(25), nullable=False)
  63.     street = db.Column('street', db.String(80), nullable=False)
  64.     city = db.Column('city', db.String(80), nullable=False)
  65.     state = db.Column('state', db.String(80), nullable=False)
  66.     zipcode = db.Column('zipcode', db.String(80), nullable=False)
  67.     phonenumber = db.Column('phonenumber', db.String(45), nullable=False)
  68.     Policy = db.relationship('Policy', backref='contact', lazy='dynamic')
  69.  
  70.     def __repr__(self):
  71.         return self.first
  72.  
  73.  
  74. class Policy(db.Model):
  75.     __tablename__ = 'Policy'
  76.     id = db.Column('id', db.Integer, primary_key=True)
  77.     policy_number = db.Column('policy_number', db.Integer)
  78.     policy_type = db.Column('policy_type', db.String(25))
  79.     contact_id = db.Column(db.Integer, db.ForeignKey('Contact.id'))
  80.  
  81.     def __repr__(self):
  82.         return self.policy_type
  83.  
  84.  
  85. class Letter(db.Model):
  86.     __tablename__ = 'Letter'
  87.     id = db.Column('id', db.Integer, primary_key=True)
  88.     title = db.Column('title', db.String(25))
  89.     description = db.Column('description', db.String(80))
  90.  
  91.     def __repr__(self):
  92.         return self.id
  93.  
  94.  
  95. admin.add_view(ModelView(User, db.session))
  96. admin.add_view(ModelView(Contact, db.session))
  97. admin.add_view(ModelView(Policy, db.session))
  98. admin.add_view(ModelView(Letter, db.session))
  99.  
  100.  
  101. @login_manager.user_loader
  102. def load_user(id):
  103.     return User.query.get(int(id))
  104.  
  105.  
  106. @app.route('/')
  107. @login_required
  108. def index():
  109.     return render_template('index.html')
  110.  
  111.  
  112. @app.route('/reports')
  113. @login_required
  114. def reports():
  115.     return render_template('reports.html')
  116.  
  117.  
  118. @app.route('/management')
  119. @login_required
  120. def management():
  121.     return render_template('management.html')
  122.  
  123.  
  124. @app.route('/history')
  125. @login_required
  126. def history():
  127.     return render_template('history.html')
  128.  
  129.  
  130. @app.route('/settings')
  131. @login_required
  132. def settings():
  133.     return render_template('settings.html')
  134.  
  135.  
  136. @app.route('/login', methods=['GET','POST'])
  137. def login():
  138.     if request.method == 'GET':
  139.         return render_template('login.html')
  140.     username = request.form['inputEmail']
  141.     password = request.form['inputPassword']
  142.     remember_me = False
  143.     if 'remember_me' in request.form:
  144.         remember_me = True
  145.     registered_user = User.query.filter_by(username=username, password=password).first()
  146.     if registered_user is None:
  147.         flash('Username or Password is invalid', 'error')
  148.         return redirect(url_for('login'))
  149.     login_user(registered_user, remember=remember_me)
  150.     flash('Logged in Successfully')
  151.     return redirect(request.args.get('next') or url_for('index'))
  152.  
  153.  
  154. @app.route('/logout')
  155. def logout():
  156.     logout_user()
  157.     return redirect(url_for('index'))
  158.  
  159.  
  160. @app.route('/signup', methods=['GET', 'POST'])
  161. def signup():
  162.     if request.method == 'GET':
  163.         return render_template('signup.html')
  164.     user = User(request.form['inputFirst'], request.form['inputLast'], request.form['inputEmail'], request.form['dob'], request.form['inputPassword'])
  165.     db.session.add(user)
  166.     db.session.commit()
  167.     flash('User successfully created!')
  168.     return redirect(url_for('login'))
  169.  
  170.  
  171. @app.route('/profile/<name>')
  172. @login_required
  173. def profile():
  174.     return render_template('profile.html', name=name)
  175.  
  176.  
  177. @app.route('/admin')
  178. @login_required
  179. def admin():
  180.     return render_template('admin.html')
  181.  
  182.  
  183. @app.route('/genreport/<policy_id>')
  184. def pdf_template(policy_id):
  185.     policy = Policy.get(policy_id)
  186.     rendered = render_template('letters/listing.html', policy=policy)
  187.     pdf = pdfkit.from_string(rendered, False)
  188.  
  189.     response = make_response(pdf)
  190.     response.headers['Content-Type'] = 'application/pdf'
  191.     response.headers['Content-Disposition'] = 'inline; filename=output.pdf'
  192.  
  193.     return response
  194.  
  195.  
  196.  
  197. if __name__ == '__main__':
  198.     app.run(host='0.0.0.0')
  199.  
  200. _________________________________________________________________________________________________________________________
  201.  
  202. 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.
  203.  
  204.  
  205. Traceback (most recent call last):
  206.   File "/home/ubuntu/myproject/myprojectenv/lib/python2.7/site-packages/flask/app.py", line 1985, in wsgi_app
  207.     response = self.handle_exception(e)
  208.   File "/home/ubuntu/myproject/myprojectenv/lib/python2.7/site-packages/flask/app.py", line 1540, in handle_exception
  209.     reraise(exc_type, exc_value, tb)
  210.   File "/home/ubuntu/myproject/myprojectenv/lib/python2.7/site-packages/flask/app.py", line 1982, in wsgi_app
  211.     response = self.full_dispatch_request()
  212.   File "/home/ubuntu/myproject/myprojectenv/lib/python2.7/site-packages/flask/app.py", line 1614, in full_dispatch_request
  213.     rv = self.handle_user_exception(e)
  214.   File "/home/ubuntu/myproject/myprojectenv/lib/python2.7/site-packages/flask/app.py", line 1517, in handle_user_exception
  215.     reraise(exc_type, exc_value, tb)
  216.   File "/home/ubuntu/myproject/myprojectenv/lib/python2.7/site-packages/flask/app.py", line 1612, in full_dispatch_request
  217.     rv = self.dispatch_request()
  218.   File "/home/ubuntu/myproject/myprojectenv/lib/python2.7/site-packages/flask/app.py", line 1598, in dispatch_request
  219.     return self.view_functions[rule.endpoint](**req.view_args)
  220.   File "/home/ubuntu/myproject/myproject.py", line 197, in pdf_template
  221.     policy = Policy.get(policy_id)
  222. AttributeError: type object 'Policy' has no attribute 'get'
Advertisement
Add Comment
Please, Sign In to add comment