Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/heynemann/cow
cow is a quick-start for tornado-powered projects (specially apis).
https://github.com/heynemann/cow
Last synced: 17 days ago
JSON representation
cow is a quick-start for tornado-powered projects (specially apis).
- Host: GitHub
- URL: https://github.com/heynemann/cow
- Owner: heynemann
- Created: 2013-06-18T00:35:58.000Z (over 11 years ago)
- Default Branch: master
- Last Pushed: 2018-03-05T19:12:43.000Z (over 6 years ago)
- Last Synced: 2024-10-18T01:07:41.373Z (27 days ago)
- Language: Python
- Size: 743 KB
- Stars: 16
- Watchers: 5
- Forks: 7
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
cow framework
=============[![Build Status](https://travis-ci.org/heynemann/cow.png?branch=master)](https://travis-ci.org/heynemann/cow)
[![PyPi version](https://pypip.in/v/cow-framework/badge.png)](https://crate.io/packages/cow-framework/)
[![PyPi downloads](https://pypip.in/d/cow-framework/badge.png)](https://crate.io/packages/cow-framework/)
[![Coverage Status](https://coveralls.io/repos/heynemann/cow/badge.png?branch=master)](https://coveralls.io/r/heynemann/cow?branch=master)introduction
------------cow is a web framework in the sense that it allows users to create tornado applications with configuration, templates and static files very easily without being a different beast.
cow automates most of the boring parts of tornado, allowing users to write only the part that actually matters: the handlers.
installing
----------Installing cow is as easy as:
pip install cow-framework
how to start a new app
----------------------Just create a server.py file that looks like this:
from cow.server import Server
from cow.plugins.motorengine_plugin import MotorEnginePlugindef main():
AppServer.run()class AppServer(Server):
def get_handlers(self):
return (
# Add your handlers here
# ('/', TestHandler),
)def get_plugins(self):
# add whatever plug-ins you want to use here
return [
MotorEnginePlugin,
]if __name__ == '__main__':
AppServer.run()To run your app, just use `python server.py`, or add the `main` method to your `setup.py` file as a command.
how do I add my own handlers
----------------------------If you open `server.py`, you'll see that it has a method called `get_handlers` that should return a list of handlers that will be passed to tornado. This is where you can put your own handlers.
Suppose we have a `HelloWorldHandler` that writes `Hello World` to our users, like the following:
from tornado.web import RequestHandler
class HelloWorldHandler(RequestHandler):
def get(self):
self.write("Hello World!")Then in our server.py `Server` class, we need to add it to a route, like this:
from cow.server import Server as CowServer
from myproject.handlers.hello_world import HelloWorldHandlerclass Server(CowServer):
def get_handlers(self):
return (
('/', HelloWorldHandler),
)Now if you run `server.py` and access `http://localhost:4444/` you should see the string `Hello World`.
how do I test my code
---------------------It's really simple. You can use cow's `CowTestCase`, like this:
from cow.testing import CowTestCase
from myproject.server import Server # the same server as in the above codeclass TestHelloWorld(CowTestCase):
def get_config(self):
return {} # add whatever configuration your app requiresdef get_server(self):
cfg = Config(**self.get_config())
return Server(cfg)def test_hello_world(self):
response = self.fetch('/')
assert response.code == 200
assert response.body == 'Hello World'