A Relay-based web development kit on Flask
Project description
Relask
A Relay-based web development kit on Flask.
Free software: BSD license
Documentation: https://relask.readthedocs.io.
Features
Fast web development setup with ES6, React and Relay
Batteries included: React Router, Webpack and Babel
Server is powered by Python, Flask and Graphene
JWT integrated, with a working example using Flask-Login
Usage
Install Relask:
pip install git+https://github.com/decentfox/relask
Create a Flask application, for example: http://flask.pocoo.org/docs/quickstart/
Initialize your Flask application with Relask (this requires npm):
FLASK_APP=xxx flask init-relask
Under the root path of your Flask application, create scripts/app.js with something like this:
import React from "react";
import ReactDOM from "react-dom";
import {Route, IndexRoute} from "react-router";
import Relay from "react-relay";
import {Relask, RelayContainer} from "babel-loader!relask";
@RelayContainer
class Hello extends React.Component {
render() {
return (
<div>Hello, {this.props.hello.name}!</div>
);
}
static relay = {
fragments: {
hello: () => Relay.QL`fragment on Hello { name }`
}
};
}
ReactDOM.render((
<Relask>
<Route path="/" component={Hello} queries={{
hello: () => Relay.QL`query { hello }`
}}/>
</Relask>
), document.getElementById('app'));
Initialize the Relask extension with something like this:
import graphene
from flask import Flask
from graphene import relay
from relask import Relask
class Hello(relay.Node):
name = graphene.String()
def resolve_name(self, args, info):
return 'World'
@classmethod
def get_node(cls, id, info):
return Hello(id=id)
class Query(graphene.ObjectType):
node = relay.NodeField()
hello = graphene.Field(Hello)
def resolve_hello(self, args, info):
return Hello.get_node(1, None)
app = Flask(__name__)
relask = Relask(app)
relask.schema.query = Query
See your result with one command - don’t worry about webpack any more:
FLASK_APP=xxx flask run
Credits
This package was created with Cookiecutter and the audreyr/cookiecutter-pypackage project template.
History
0.1.0 (2016-06-07)
First release on PyPI.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
File details
Details for the file relask-0.1.0.tar.gz
.
File metadata
- Download URL: relask-0.1.0.tar.gz
- Upload date:
- Size: 17.3 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 2013cfe06dd6d25516f4b3a13ccabf42be5e31663be5892e622ca43b4c91c44c |
|
MD5 | 77a6f024f49d2500cb07d8c731633f2c |
|
BLAKE2b-256 | 4f3b2cb18d0986a53095a50afbca08ec0199873fca6b55399f72c982ac7b4431 |