diff --git a/app.py b/app.py index a095afeff04c71c376f94c4f0139c2e61e0ed46d..ca9647d26dc4e5cd6567bbd02e434b36b4e4d7c2 100644 --- a/app.py +++ b/app.py @@ -8,7 +8,6 @@ app.config['SEND_FILE_MAX_AGE_DEFAULT'] = 0 app.config['SQLALCHEMY_DATABASE_URI'] = 'sqlite:///site.db' app.config['SECRET_KEY'] = secrets.token_hex(16) - db = SQLAlchemy(app) class Project(db.Model): @@ -86,5 +85,6 @@ def download_assessment(filename): print(f"Error serving assessment file: {str(e)}") app.logger.exception(f"Error serving assessment file: {str(e)}") abort(500) + if __name__ == '__main__': - app.run(debug=True, port=int(os.environ.get('PORT', 8080))) \ No newline at end of file + app.run(debug=True, port=int(os.environ.get('PORT', 8080))) diff --git a/my_flask_app.py b/my_flask_app.py new file mode 100644 index 0000000000000000000000000000000000000000..ca9647d26dc4e5cd6567bbd02e434b36b4e4d7c2 --- /dev/null +++ b/my_flask_app.py @@ -0,0 +1,90 @@ +import os +import secrets +from flask import Flask, render_template, request, redirect, url_for, send_from_directory, abort +from flask_sqlalchemy import SQLAlchemy + +app = Flask(__name__, static_folder='static') +app.config['SEND_FILE_MAX_AGE_DEFAULT'] = 0 +app.config['SQLALCHEMY_DATABASE_URI'] = 'sqlite:///site.db' +app.config['SECRET_KEY'] = secrets.token_hex(16) + +db = SQLAlchemy(app) + +class Project(db.Model): + id = db.Column(db.Integer, primary_key=True) + title = db.Column(db.String(100), nullable=False) + description = db.Column(db.Text, nullable=False) + +@app.route('/') +def home(): + try: + projects = Project.query.all() + return render_template('index.html', projects=projects) + except Exception as e: + print(f"Error fetching projects: {str(e)}") + return render_template('error.html') + +# New route for the 'about' page +@app.route('/about') +def about(): + return render_template('about.html') + +# New route for the 'experience' page +@app.route('/experience') +def experience(): + # Add logic to fetch data related to the Experience section if needed + return render_template('experience.html') + +# New route for the 'portfolio' page +@app.route('/portfolio') +def portfolio(): + # Add logic to fetch data related to the Portfolio section if needed + return render_template('portfolio.html') + +# New route for the 'contact' page +@app.route('/contact') +def contact(): + return render_template('contact.html') + +# Updated route for adding a project without Flask-WTF form +@app.route('/add_project', methods=['GET', 'POST']) +def add_project(): + if request.method == 'POST': + # Retrieve form data directly from request + title = request.form.get('title') + description = request.form.get('description') + + # Print or log the form data to check if it's received + print(f"Received form data - Title: {title}, Description: {description}") + + new_project = Project(title=title, description=description) + db.session.add(new_project) + db.session.commit() + return redirect(url_for('home')) + + return render_template('add_project.html') + +# Updated route for serving the 'my-cv.docx' file +@app.route('/download_cv') +def download_cv(): + file_path = 'static/my-cv.docx' + print(f"Attempting to serve file: {file_path}") + return send_from_directory('static', 'my-cv.docx', as_attachment=True, mimetype='application/docx') + +# Updated route for serving assessment files +@app.route('/download_assessment/<filename>') +def download_assessment(filename): + try: + file_path = f'static/{filename}' + print(f"Attempting to serve file: {file_path}") + return send_from_directory('static', filename, as_attachment=True) + except FileNotFoundError: + print(f"File not found: {file_path}") + abort(404) # Return a 404 Not Found error + except Exception as e: + print(f"Error serving assessment file: {str(e)}") + app.logger.exception(f"Error serving assessment file: {str(e)}") + abort(500) + +if __name__ == '__main__': + app.run(debug=True, port=int(os.environ.get('PORT', 8080))) diff --git a/wsgi.py b/wsgi.py index 5db2a345da5335aaa3f90de8fc2f854f75b2387d..a4f73deaa0d5a2ccfdbf9ed6357cef893b142f84 100644 --- a/wsgi.py +++ b/wsgi.py @@ -1,10 +1,4 @@ -import os -from app import app as application -from markupsafe import Markup +from my_flask_app import app as application -sys.modules['flask'].Markup = Markup - -logging.basicConfig(stream=sys.stderr) - -if __name__ == '__main__': - application.run(host='0.0.0.0', port=int(os.environ.get('PORT', 8080))) +if __name__ == "__main__": + application.run()