This commit is contained in:
BryantHe 2023-07-14 15:12:10 +08:00
parent 175f52dc0c
commit d7bb7ee7c1
8 changed files with 67 additions and 2 deletions

2
.gitignore vendored
View File

@ -158,5 +158,5 @@ cython_debug/
# be found at https://github.com/github/gitignore/blob/main/Global/JetBrains.gitignore # be found at https://github.com/github/gitignore/blob/main/Global/JetBrains.gitignore
# and can be added to the global gitignore or merged into this file. For a more nuclear # and can be added to the global gitignore or merged into this file. For a more nuclear
# option (not recommended) you can uncomment the following to ignore the entire idea folder. # option (not recommended) you can uncomment the following to ignore the entire idea folder.
#.idea/ .idea/

View File

@ -1,3 +1,9 @@
# falcon-example # falcon-example
学习 Python 的 Web 框架 Falcon 学习 Python 的 Web 框架 Falcon
## 安装依赖
```
python3 -m pip install -r requirements.txt
```

0
app/__init__.py Normal file
View File

7
app/app.py Normal file
View File

@ -0,0 +1,7 @@
import falcon
from .images import Resource
app = application = falcon.App()
app.add_route('/images', Resource())

18
app/images.py Normal file
View File

@ -0,0 +1,18 @@
import falcon
import msgpack
class Resource:
def on_get(self, req, resp):
doc = {
'images': [
{
'href': '/images/1eaf6ef1-7f2d-4ecc-a8d5-6e8adba7cc0e.png',
}
]
}
resp.data = msgpack.packb(doc, use_bin_type=True)
resp.content_type = falcon.MEDIA_MSGPACK
resp.status = falcon.HTTP_200

7
requirements.txt Normal file
View File

@ -0,0 +1,7 @@
falcon
requests
gunicorn
httpie
orjson==3.9.2
msgpack-python==0.5.6
pytest==7.4.0

0
tests/__init__.py Normal file
View File

27
tests/test_app.py Normal file
View File

@ -0,0 +1,27 @@
import falcon
from falcon import testing
import msgpack
import pytest
from app.app import app
@pytest.fixture()
def client():
return testing.TestClient(app)
def test_list_images(client):
doc = {
'images': [
{
'href': '/images/1eaf6ef1-7f2d-4ecc-a8d5-6e8adba7cc0e.png',
}
]
}
response = client.simulate_get('/images')
result_doc = msgpack.unpackb(response.content, raw=False)
assert result_doc == doc
assert response.status == falcon.HTTP_OK