My Blog

My WordPress Blog

My Blog

My WordPress Blog

Event Management System

Prerequisites

Make sure you have the following installed:

  • Python (3.x)
  • Flask
  • SQLite (or any database of your choice)

You can install Flask using pip:

pip install Flask

Directory Structure

event_management_system/
│
├── app.py
├── templates/
│   ├── base.html
│   ├── event_list.html
│   └── event_form.html
└── static/
└── style.css

Code Implementation

1. app.py

This is the main application file.

from flask import Flask, render_template, redirect, url_for, request
from flask_sqlalchemy import SQLAlchemy

app = Flask(__name__)
app.config['SQLALCHEMY_DATABASE_URI'] = 'sqlite:///events.db'
app.config['SQLALCHEMY_TRACK_MODIFICATIONS'] = False
db = SQLAlchemy(app)

class Event(db.Model):
id = db.Column(db.Integer, primary_key=True)
title = db.Column(db.String(100), nullable=False)
description = db.Column(db.String(200), nullable=False)
date = db.Column(db.String(20), nullable=False)
def __repr__(self):
    return f'<Event {self.title}>'
@app.route('/') def index():
events = Event.query.all()
return render_template('event_list.html', events=events)
@app.route('/event/new', methods=['GET', 'POST']) def new_event():
if request.method == 'POST':
    title = request.form['title']
    description = request.form['description']
    date = request.form['date']
    new_event = Event(title=title, description=description, date=date)
    db.session.add(new_event)
    db.session.commit()
    return redirect(url_for('index'))
return render_template('event_form.html')
@app.route('/event/edit/<int:event_id>', methods=['GET', 'POST']) def edit_event(event_id):
event = Event.query.get_or_404(event_id)
if request.method == 'POST':
    event.title = request.form&#91;'title']
    event.description = request.form&#91;'description']
    event.date = request.form&#91;'date']
    db.session.commit()
    return redirect(url_for('index'))
return render_template('event_form.html', event=event)
@app.route('/event/delete/<int:event_id>', methods=['POST']) def delete_event(event_id):
event = Event.query.get_or_404(event_id)
db.session.delete(event)
db.session.commit()
return redirect(url_for('index'))
if __name__ == '__main__':
db.create_all()
app.run(debug=True)

2. HTML Templates

Base Template (templates/base.html)

<!DOCTYPE html>
<html lang="en">
<head>
&lt;meta charset="UTF-8">
&lt;meta name="viewport" content="width=device-width, initial-scale=1.0">
&lt;title>Event Management System&lt;/title>
&lt;link rel="stylesheet" href="{{ url_for('static', filename='style.css') }}">
</head> <body>
&lt;div class="container">
    &lt;h1>Event Management System&lt;/h1>
    &lt;nav>
        &lt;a href="{{ url_for('index') }}">Home&lt;/a>
        &lt;a href="{{ url_for('new_event') }}">Create Event&lt;/a>
    &lt;/nav>
    {% block content %}{% endblock %}
&lt;/div>
</body> </html>

Event List Template (templates/event_list.html)

{% extends 'base.html' %}

{% block content %}
&lt;h2>Event List&lt;/h2>
&lt;ul>
    {% for event in events %}
        &lt;li>
            &lt;strong>{{ event.title }}&lt;/strong> - {{ event.date }}
            &lt;form action="{{ url_for('delete_event', event_id=event.id) }}" method="POST" style="display:inline;">
                &lt;button type="submit">Delete&lt;/button>
            &lt;/form>
            &lt;a href="{{ url_for('edit_event', event_id=event.id) }}">Edit&lt;/a>
        &lt;/li>
    {% endfor %}
&lt;/ul>
{% endblock %}

Event Form Template (templates/event_form.html)

htmlCopy code{% extends 'base.html' %}

{% block content %}
&lt;h2&gt;{% if event %}Edit Event{% else %}New Event{% endif %}&lt;/h2&gt;
&lt;form method="POST"&gt;
    &lt;label for="title"&gt;Title:&lt;/label&gt;
    &lt;input type="text" name="title" required value="{{ event.title if event else '' }}"&gt;
    &lt;label for="description"&gt;Description:&lt;/label&gt;
    &lt;input type="text" name="description" required value="{{ event.description if event else '' }}"&gt;
    &lt;label for="date"&gt;Date:&lt;/label&gt;
    &lt;input type="text" name="date" required value="{{ event.date if event else '' }}"&gt;
    &lt;button type="submit"&gt;{% if event %}Update{% else %}Create{% endif %}&lt;/button&gt;
&lt;/form&gt;
&lt;a href="{{ url_for('index') }}"&gt;Back to Event List&lt;/a&gt;
{% endblock %}

3. Basic CSS (optional)

You can add some basic styling in static/style.css.

body {
font-family: Arial, sans-serif;
margin: 20px;
} .container {
max-width: 800px;
margin: auto;
} nav a {
margin-right: 15px;
}

Running the Application

  1. Navigate to the project directory.
  2. Run the application:
python app.py
  1. Open your web browser and go to http://127.0.0.1:5000.
Event Management System

Leave a Reply

Your email address will not be published. Required fields are marked *

Scroll to top