DomainScoreCursor Rules
GitHub

1/23/2025

A comprehensive guide to integrating HTMX with Flask, including best practices, folder structure, and additional instructions for building modern web applications.



# HTMX (Flask)

# HTMX with Flask .cursorrules

## HTMX and Flask Best Practices

```javascript
const htmxFlaskBestPractices = [
  "Use Flask's render_template for server-side rendering",
  "Implement Flask-WTF for form handling",
  "Utilize Flask's url_for for generating URLs",
  "Use Flask's jsonify for JSON responses",
  "Implement Flask-SQLAlchemy for database operations",
  "Utilize Flask's Blueprint for modular applications",
];
```

## Folder Structure

```javascript
const folderStructure = `
app/
  templates/
  static/
    css/
    js/
  models/
  routes/
  __init__.py
config.py
run.py
`;
```

## Additional Instructions

```javascript
const additionalInstructions = `
1. Use Jinja2 templating with HTMX attributes
2. Implement proper CSRF protection with Flask-WTF
3. Utilize Flask's request object for handling HTMX requests
4. Use Flask-Migrate for database migrations
5. Implement proper error handling and logging
6. Follow Flask's application factory pattern
7. Use environment variables for configuration
`;
```

### Detailed Instructions

1. **Jinja2 Templating with HTMX Attributes**: Ensure that your Jinja2 templates include HTMX attributes to enable dynamic content updates without full page reloads.
2. **CSRF Protection with Flask-WTF**: Always implement CSRF protection to secure your forms and prevent cross-site request forgery attacks.
3. **Handling HTMX Requests**: Use Flask's request object to handle HTMX-specific headers and data, ensuring seamless integration.
4. **Database Migrations with Flask-Migrate**: Manage your database schema changes efficiently using Flask-Migrate.
5. **Error Handling and Logging**: Implement robust error handling and logging to monitor and debug your application effectively.
6. **Application Factory Pattern**: Structure your Flask application using the application factory pattern for better scalability and maintainability.
7. **Environment Variables for Configuration**: Use environment variables to manage your application's configuration securely and flexibly.