Flaxon 0.3.0 and Teloce-Py 0.3.0 are available on PyPI. Release instructions are maintained on this site; source links identify the framework snapshot. Check version and upgrade guidance.
For generated projects, use the shared settings.py, Flaxon.from_settings(),
explicit mounts in app.py, and management.py workflow. See ORM and project management
for Python migrations, model registration, permission hooks, relationship editing,
and Admin/CMS metadata storage. Backend-only and legacy adapter examples remain supported.
Migration Guide
This guide helps developers migrate existing applications from popular Python frameworks to Flaxon.
Flaxon provides a modern, async-first approach while keeping familiar patterns from frameworks like Flask, Django, and FastAPI.
Migrating from Flask
Route Decorators
Flask
@app.route("/users/<int:user_id>")
def get_user(user_id):
return jsonify({"id": user_id})
````
### Flaxon
```python
@app.get("/users/<int:user_id>")
async def get_user(user_id: int):
return {"id": user_id}
Request and Response
Flask
data = request.get_json()
return jsonify({
"status": "ok"
})
Flaxon
data = await request.json()
return {
"status": "ok"
}
Validation
Flask
Flask usually requires manual validation:
if not username:
return {"error": "Username required"}
Flaxon
Flaxon provides schema-based validation:
class CreateUser(Schema):
name = fields.StrField(required=True)
WebSockets
Flask
Requires an additional extension:
# Requires Flask-SocketIO
Flaxon
Built-in async WebSocket support:
@app.websocket("/ws/chat")
async def chat(socket):
await socket.accept()
Migrating from Django
Views
Django
def get_user(request, user_id):
return JsonResponse({
"id": user_id
})
Flaxon
@app.get("/users/<int:user_id>")
async def get_user(user_id: int):
return {
"id": user_id
}
Serializers
Django REST Framework
class UserSerializer(serializers.ModelSerializer):
class Meta:
model = User
fields = [
"id",
"name"
]
Flaxon
class UserSchema(Schema):
id = fields.IntField()
name = fields.StrField()
Migrating from FastAPI
Path Parameters
FastAPI
@app.get("/users/{user_id}")
async def get_user(user_id: int):
return {
"id": user_id
}
Flaxon
@app.get("/users/<int:user_id>")
async def get_user(user_id: int):
return {
"id": user_id
}
Validation
FastAPI
class User(BaseModel):
name: str
email: EmailStr
Flaxon
class User(Schema):
name = fields.StrField(required=True)
email = fields.EmailField(required=True)
Common Patterns
Database Connection
Flaxon Startup and Shutdown
@app.on_startup
async def startup():
app.state.db = await create_pool()
@app.on_shutdown
async def shutdown():
await app.state.db.close()
Dependency Injection
Flaxon supports dependency injection for managing application services.
from flaxon.dependency_injection import Container, inject
container = Container()
container.register_instance(
"db",
db_pool
)
@inject(container)
async def get_users(db):
return await db.fetch_all(
"SELECT * FROM users"
)
Testing
Flaxon provides a testing client for application testing.
from flaxon.testing import TestClient
def test_get_users():
client = TestClient(app)
response = client.get("/users")
assert response.status_code == 200
Breaking Changes
Version 0.1.0 โ Future Versions
Before Flaxon reaches version 1.0, some APIs may change.
Migration notes:
- Check
CHANGELOG.mdbefore upgrading. - Follow semantic versioning.
- Review deprecated features before updating.
Getting Help
If you need help migrating:
GitHub Issues
Report bugs or migration problems through GitHub Issues.
Discussions
Ask questions and share migration tips through GitHub Discussions.
```