Starting a new project with FullPy
Directory architecture
To start a new project, follow these simple steps:
Create a directory for your project
Create a “static” subdirectory in that directory
Copy the following files in the “static” subdirectory:
“fullpy.css” (from fullpy/static)
“brython.js” and “brython_stdlib.js” (from Brython)
Create a “server.py” and “client.py” Python scripts in your project directory
That’s all! You should obtain the following hierarchy:
- project_directory/
- static/
brython.js
brython_stdlib.js
fullpy.css
client.py
server.py
The two next subsections give an example of an Hello World FullPy web application (the code can be found in the “demo/demo_1_hello_world_ajax” directory of FullPy).
Hello World server example
import sys, os, os.path
from fullpy.server import *
class MyWebApp(ServerSideWebapp):
def __init__(self):
ServerSideWebapp.__init__(self)
self.name = "demo"
self.url = "/index.html"
self.title = "FullPy demo"
self.static_folder = os.path.join(os.path.dirname(__file__), "static")
self.use_python_client(os.path.join(os.path.dirname(__file__), "client.py"))
self.use_ajax(debug = True)
@rpc # Mark the function as remotely callable by the client (RPC = remote procedure call)
def server_hello(self, session):
return "Hello world!"
from fullpy.server.gunicorn_backend import *
serve_forever([MyWebApp()], "http://127.0.0.1:5000")
Hello World client example
from fullpy.client import *
class MyWebApp(ClientSideWebapp):
def on_started(self):
def done(response):
html = HTML("""FullPy Demo loaded Ok! Server says: '%s'.""" % response)
html.show()
webapp.server_hello(done) # Call the server_hello() remote function on the server
MyWebApp()
Running the web application
To run your web application, simply execute the server.py Python script.
FullPy will automatically compile the client part of the web application into Javascript, if needed.
python3 ./server.py
Then, open the following address in your web browser: http://127.0.0.1:5000/demo/index.html