Flask

Creating a Guestbook with User Comments


Introduction

Building a guestbook with user comments is a classic web development project that allows users to leave comments and feedback on a website. In this guide, we'll explore how to create a simple guestbook using Flask, a Python web framework. You'll learn how to set up a guestbook, create a form for user comments, store and retrieve comments in a database, and display them on a webpage. By following this guide, you'll be able to develop a basic guestbook feature that can be integrated into various web applications.

Step 1: Setting Up Your Flask Application

Start by setting up your Flask application and creating a directory structure. Here's a sample structure:

guestbook/
    app.py
    templates/
        index.html
    

Step 2: Creating the Guestbook Application

Create a Flask application for the guestbook. Here's an example of the Python code:

# app.py
from flask import Flask, render_template, request, redirect
from flask_sqlalchemy import SQLAlchemy
app = Flask(__name)
app.config['SQLALCHEMY_DATABASE_URI'] = 'sqlite:///guestbook.db'
db = SQLAlchemy(app)
class Comment(db.Model):
    id = db.Column(db.Integer, primary_key=True)
    text = db.Column(db.String(200), nullable=False)
@app.route('/')
def index():
    comments = Comment.query.all()
    return render_template('index.html', comments=comments)
@app.route('/add_comment', methods=['POST'])
def add_comment():
    text = request.form.get('comment')
    if text:
        comment = Comment(text=text)
        db.session.add(comment)
        db.session.commit()
    return redirect('/')if __name__ == '__main__':
    app.run(debug=True)
        

Step 3: Creating the HTML Template

Create an HTML template to display the guestbook and the form for user comments. Here's an example:

<!-- templates/index.html -->
<!DOCTYPE html>
<html>
<head>
    <title>Guestbook</title>
</head>
<body>
    <header>
        <h1>Guestbook</h1>
    </header>
    <section>
        <h2>Add a Comment</h2>
        <form method=`POST` action=`/add_comment`>
            <textarea name=`comment` placeholder=`Leave your comment here` required></textarea>
            <button type=`submit`>Submit</button>
        </form>
    </section>
    <section>
        <h2>Guestbook Entries</h2>
        <ul>
            {% for comment in comments %}
                <li>{{ comment.text }}</li>
            {% endfor %}
        </ul>
    </section>
</body>
</html>
        

Step 4: Running Your Guestbook Application

Run your Flask guestbook application using the following command:

python app.py
        

Access your guestbook in a web browser and start adding comments. The comments will be displayed on the guestbook page.

Conclusion

Creating a guestbook with user comments is a simple yet engaging web development project. By following the steps in this guide, you can set up a guestbook using Flask, create a comment form, store user comments in a database, and display them on a webpage. This project serves as a great starting point for collecting user feedback, and you can expand it with additional features like user authentication, comment moderation, and more.

Written by Surfside Media

Senior Full Stack Developer specializing in Web Technologies.