Ortus CMS integration for Flask applications
Project description
Ortus Flask Integration
Ortus CMS integration package for Flask applications to enable:
- Webhook receiving for blog sync from Ortus CMS
- Authenticated API for Ortus to fetch blogs
- EditorJS data support
Installation
pip install ortus-flask
Usage
1. Update your Blog Model
Ensure your Blog model has the required fields:
from flask_sqlalchemy import SQLAlchemy
from datetime import datetime
db = SQLAlchemy()
class Blog(db.Model):
__tablename__ = 'blogs'
id = db.Column(db.Integer, primary_key=True)
title = db.Column(db.String(255), nullable=False)
slug = db.Column(db.String(255), unique=True, nullable=False)
excerpt = db.Column(db.Text, nullable=False)
content = db.Column(db.Text, nullable=False)
image = db.Column(db.String(500))
author = db.Column(db.String(100))
tag = db.Column(db.String(50))
category = db.Column(db.String(50))
views = db.Column(db.String(20), default="0")
date = db.Column(db.String(20))
created_at = db.Column(db.DateTime, default=datetime.utcnow)
editorjs_data = db.Column(db.JSON, nullable=True)
def to_dict(self):
return {
"id": self.id,
"title": self.title,
"slug": self.slug,
"excerpt": self.excerpt,
"content": self.content,
"image": self.image,
"author": self.author,
"tag": self.tag,
"category": self.category,
"views": self.views,
"date": self.date,
"editorjs_data": self.editorjs_data
}
2. Initialize in your Flask app
from flask import Flask
from flask_sqlalchemy import SQLAlchemy
from flask_migrate import Migrate
from ortus_flask import init_ortus
import os
from dotenv import load_dotenv
load_dotenv() # Loads ORTUS_WEBHOOK_SECRET and ORTUS_API_KEY
app = Flask(__name__)
app.config['SQLALCHEMY_DATABASE_URI'] = 'sqlite:///yourapp.db'
db = SQLAlchemy(app)
migrate = Migrate(app, db)
# Import your Blog model
from models import Blog
# Initialize Ortus integration
app.config['ORTUS_WEBHOOK_SECRET'] = os.getenv('ORTUS_WEBHOOK_SECRET')
app.config['ORTUS_API_KEY'] = os.getenv('ORTUS_API_KEY')
init_ortus(app, db, Blog)
3. Add to your .env
ORTUS_WEBHOOK_SECRET=your_webhook_secret
ORTUS_API_KEY=your_api_key
API Endpoints
After integration, these endpoints are available:
POST /api/webhook/blog- Receive blogs from OrtusGET /api/webhook/config- Get webhook configurationGET /api/sites/1/blogs- Fetch all blogs (authenticated)
Development
Install in editable mode:
pip install -e .
Build package:
python -m build
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
ortus_flask-0.1.1.tar.gz
(8.8 kB
view details)
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file ortus_flask-0.1.1.tar.gz.
File metadata
- Download URL: ortus_flask-0.1.1.tar.gz
- Upload date:
- Size: 8.8 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
9b72baeb803e79bd90747e56e0d86faab20cf54b2b0dba0b83e29f1d948fe981
|
|
| MD5 |
79e09ebb69f457d6ab51e88dd1aa13e1
|
|
| BLAKE2b-256 |
212af8bf35a61789a344bca3aee45a087754c9ec353a63d7c926f7bc9bdfa5a0
|
File details
Details for the file ortus_flask-0.1.1-py3-none-any.whl.
File metadata
- Download URL: ortus_flask-0.1.1-py3-none-any.whl
- Upload date:
- Size: 11.8 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
40b036b8a129846b703f590169704d1583017909eee14c14954c29c3719bd859
|
|
| MD5 |
b85f7a728b64311a67151f1d6f14faeb
|
|
| BLAKE2b-256 |
3419599b506ad018bed7f8ea7a35c2028b70dbb3c430d8834d25c3e46b166446
|