|Info:||This is the source code of $project_name|
This file has been created automatically by cyclone-tool for $project_name. It contains the following files:
start.sh: simple shell script to start the server
$modname.conf: configuration file for the web server
$modname/__init__.py: information such as author and version of this package
$modname/web.py: map of url handlers and main class of the web server
$modname/config.py: configuration parser for
$modname/views.py: code of url handlers for the web server
scripts/debian-init.d: generic debian start/stop init script
scripts/debian-multicore-init.d: run one instance per core on debian
scripts/localefix.py: script to fix html text before running
scripts/cookie_secret.py: script for generating new secret key for the web server
For development and testing:
twistd -n cyclone --help twistd -n cyclone -r $modname.web.Application [--help]
twistd cyclone \ --logfile=/var/log/$project.log \ --pidfile=/var/run/$project.pid \ -r $modname.web.Application
Convert this document to HTML
Well, since this is a web server, it might be a good idea to convert this document to HTML before getting into customization details.
Because not everybody has DocUtils installed,
I recommend using the
rst2a web service API:
curl -F "rst=@README.rst" http://api.rst2a.com/1.0/rst2/html > frontend/static/readme.html
And point your browser to
http://localhost:8888/static/readme.html after this server
For more information on the API, please check http://rst2a.com/api/.
This section is dedicated to explaining how to customize your brand new package.
cyclone provides built-in support for SQLite and Redis databases.
It also supports any RDBM supported by the
like MySQL or PostgreSQL.
The default configuration file
$modname.conf ships with pre-configured
settings for SQLite, Redis and MySQL.
The code for loading all the database settings is in
Feel free to comment or even remove such code, and configuration entries. It
shouldn't break the web server.
Take a look at
$modname/utils.py, which is where persistent database
connections are initialized.
cyclone uses the standard
gettext library for dealing with string
Make sure you have the
gettext package installed. If you don't, you won't
be able to translate your software.
For installing the
gettext package on Debian and Ubuntu systems, do this:
apt-get install gettext
For Mac OS X, I'd suggest using HomeBrew. If you already use HomeBrew, run:
brew install gettext brew link gettext
For generating translatable files for HTML and Python code of your software, run this:
cat frontend/template/*.html $modname/*.py | python scripts/localefix.py | \ xgettext - --language=Python --from-code=utf-8 --keyword=_:1,2 -d $modname
Then translate $modname.po, compile and copy to the appropriate locale directory:
(pt_BR is used as example here) vi $modname.po mkdir -p frontend/locale/pt_BR/LC_MESSAGES/ msgfmt $modname.po -o frontend/locale/pt_BR/LC_MESSAGES/$modname.mo
There are sample translations for both Spanish and Portuguese in this package, already compiled.
The current cookie secret key in
$modname.conf was generated during the
creation of this package. However, if you need a new one, you may run the
scripts/cookie_secret.py script to generate a random key.
- cyclone web server.