An Experimental Full-Stack Framework For Python.
A full-stack framework built with python. The library is shipped with Bootstrap 5 for your styling needs.
Docs: https://sas2k.github.io/Lemon
Discord Server: https://discord.gg/Dw6hCp3usF
Features:
- UI Library (Development)
- A full Back-end Capabilities
- Django style route adding (See
examples/django-routing.py
) - An ORM and migrations feature (check-out -> examples/Lemon-App) (ORM supports strings only for now.)
- React like syntax
- middleware api
- a terminal app to create app [create-lemon-app < app-name >]
- Component Generator [https://github.com/Sas2k/Lemon-CLI]
- Reactivity (See
examples/reactivity-example
) - Testing (See
examples/Tests.py
) - Custom Exception Handler (
examples/exception-handler.py
) - Blueprint Routing (
examples/Lemon-App
)
If you want to have live reloading try uvicorn: https://www.uvicorn.org/
If you don't think this isn't capable to handle anything check these out!
https://sas2ks-old-portfolio.vercel.app/ | https://github.com/Sas2k/Old-Portfolio
https://github.com/Sas2k/HTTP-Blog
Legend:
[x] - checked [*] - doing [ ] - Not Done
- Form Data Handling (Currently being Developed)
- States (Currently being Developed)
Docs Are still in Development Try heading over to /examples
for some idea.
Here is an example below
from Lemon.components import Component
from Lemon.Server.server import Server
app = Server(static_dir=None)
Root = Component("Home Page", None, None) #Root component
class Home(Component):
"Home Page Component"
name = "Home"
def item(props: dict):
"The Item Function: where the html and props are passed"
return """
<h1>Hello World!</h1>
"""
Root.add([Home])
@app.route("/") #Route decorator
def index(request, response):
home_page = Root.render("<Home/>")
response.text = home_page
app.run() #runs the app
Here is the folder structure I recommend. (you can create your own structure based on your needs)
App/
- src/
- Components/
- __init__.py
- components.py
- Models/
- __init__.py
- models.py
- Routes/
- __init__.py
- routes.py
- Public/
- css/
- style.css
- js/
- script.js
- app.py
- base.py
- README.md
To install with,
pip: pip install Lemon-Library
See also the list of contributors who participated in this project.