📝 add basic information to readme
This commit is contained in:
parent
ba82fc7f88
commit
29b16b5371
63
README.md
63
README.md
@ -1,3 +1,64 @@
|
||||
# spiderweb
|
||||
|
||||
A learning opportunity for a web framework.
|
||||
As a professional web developer focusing on arcane uses of Django for arcane purposes, it occurred to me a little while ago that I didn't actually know how a web framework _worked_.
|
||||
|
||||
So I built one.
|
||||
|
||||
`spiderweb` is a small web framework, just big enough to hold a spider. Getting started is easy:
|
||||
|
||||
```shell
|
||||
poetry add spiderweb-framework
|
||||
```
|
||||
|
||||
Create a new file and drop this in it:
|
||||
|
||||
```python
|
||||
from spiderweb import SpiderwebRouter
|
||||
from spiderweb.response import HttpResponse
|
||||
|
||||
app = SpiderwebRouter()
|
||||
|
||||
@app.route("/")
|
||||
def index(request):
|
||||
return HttpResponse("HELLO, WORLD!")
|
||||
|
||||
if __name__ == "__main__":
|
||||
app.start()
|
||||
```
|
||||
|
||||
My goal with this framework was to do three things:
|
||||
|
||||
1. Learn a lot
|
||||
2. Create an unholy blend of Django and Flask
|
||||
3. Not look at any existing code. Go off of vibes alone and try to solve all the problems I could think of in my own way
|
||||
|
||||
And, honestly, I think I got there. Here's a non-exhaustive list of things this can do:
|
||||
|
||||
* Function-based views
|
||||
* Optional Flask-style URL routing
|
||||
* Optional Django-style URL routing
|
||||
* URLs with variables in them a lá Django
|
||||
* Gunicorn support
|
||||
* Full middleware implementation
|
||||
* Limit routes by HTTP verbs
|
||||
* Custom error routes
|
||||
* Built-in dev server
|
||||
* HTML templates with Jinja2
|
||||
* Static files support
|
||||
* Cookies (reading and setting)
|
||||
* Optional append_slash (with automatic redirects!)
|
||||
* ~~CSRF middleware implementation~~ (it's there, but it's crappy and unsafe. I'm working on it.)
|
||||
* Optional POST data validation middleware with Pydantic
|
||||
|
||||
The TODO list:
|
||||
|
||||
* Tests (important)
|
||||
* Database support
|
||||
* Session middleware
|
||||
* Fix CSRF middleware once database support is included
|
||||
|
||||
Once tests are in and proven to work, then I'll release as version 1.0.
|
||||
|
||||
More documentation to follow!
|
||||
|
||||
If you're reading this on GitHub, this repository is a public mirror of https://git.joekaufeld.com/jkaufeld/spiderweb.
|
Loading…
Reference in New Issue
Block a user