PyLucid is a Open Source web content management system written in Python using the Django Framework.

README.creole

about PyLucid

PyLucid is an Open Source web content management system written in Python using Django-CMS.

It's more a alternative for djangocms-installer

The goal is to simplify the Django-CMS setup.

PyLucid delivers ready-to-use compiled Twitter Bootstrap v4 (Licensed under MIT) with some simple templates directly.

PyLucid is licensed under GNU General Public License v3 or later (GPLv3+)

Try, fork and contribute! ;)

Build Status on travis-ci.org travis-ci.org/jedie/PyLucid
Coverage Status on coveralls.io coveralls.io/r/jedie/PyLucid
Requirements Status on requires.io requires.io/github/jedie/PyLucid/requirements/

install

1. bootstrap PyLucid virtualenv

# download bootstrap file:
/home/FooBar$ wget https://github.com/jedie/PyLucid/raw/master/pylucid/pylucid_boot.py

# Create virtualenv with all needed packages:
/home/FooBar$ python3 pylucid_boot.py boot ~/PyLucid-env

2. use the created PyLucid virtualenv

# Go into created virtualenv:
/home/FooBar$ cd ~/PyLucid-env

# activate the env:
~/PyLucid-env $ source bin/activate

# Start the interactive admin shell:
(PyLucid-env) ~/PyLucid-env $ pylucid_admin

pylucid_admin.py shell v3.0.0
Type help or ? to list commands.

pylucid_admin.py>

3. create a page instance

A page instance is a django project with own settings, for easy start a own web page. Create a page instance in the interactive admin shell:

pylucid_admin.py> create_page_instance ~/page_instance you_project_name
...
pylucid_admin.py> quit

# Go into created page instance
(PyLucid_env) ~/PyLucid_env $ cd ~/page_instance/

# Create cache tables
(PyLucid_env) ~/page_instance $ ./manage.py createcachetable

# init database
(PyLucid_env) ~/page_instance $ ./manage.py migrate

# Create a super user
(PyLucid_env) ~/page_instance $ ./manage.py createsuperuser

# Copies all static files together:
(PyLucid_env) ~/page_instance $ ./manage.py collectstatic

# run developer server:
(PyLucid_env) ~/page_instance $ ./manage.py runserver

update

A general overview:

  • update environment
  • migrate database
  • collect static files
  • Update you own templates/styles (not always needed)

Looks like this:

# Go into created virtualenv:
/home/FooBar$ cd ~/PyLucid-env

# activate the env:
~/PyLucid-env $ source bin/activate

# Start the interactive admin shell and update environment:
(PyLucid-env) ~/PyLucid-env $ pylucid_admin

pylucid_admin.py shell v3.0.0
Type help or ? to list commands.

pylucid_admin.py> update_env
...
pylucid_admin.py> quit

# Go into created page instance
(PyLucid_env) ~/PyLucid_env $ cd ~/page_instance/

# init database
(PyLucid_env) ~/page_instance $ ./manage.py migrate

# Copies all static files together:
(PyLucid_env) ~/page_instance $ ./manage.py collectstatic

Note: Check 'Backward-incompatible changes' below!

further information

run test project

You can run a test project with the django developer server:

(PyLucid-env) ~/PyLucid-env $ pylucid_admin run_test_project_dev_server

bootstrap manually

Note: You can install PyLucid manually via PyPi package:

  • create virtualenv
  • install pylucid via pip from PyPi
  • run pylucid_admin update_env

pylucid_boot.py - interactive shell

pylucid_boot.py is a interactive shell with command completion. You can just start it and do this:

/home/FooBar$ python3 pylucid_boot.py

pylucid_boot.py shell v0.2.0
Type help or ? to list commands.

pylucid_boot.py> ?

Hint: All commands can be called directly from commandline.
e.g.: $ ./pylucid_boot.py help

Use <tab> to command completion.

Documented commands (type help <topic>):
========================================
boot  boot_developer  help  quit

pylucid_admin.py - interactive shell

pylucid_admin.py is a interactive shell with command completion, e.g.:

(PyLucid_env) ~/PyLucid_env $ pylucid_admin
Activated virtualenv detected: '/home/foobar/PyLucid-env' (/home/foobar/PyLucid-env/bin/python3)

pylucid_admin.py shell v0.2.0
Type help or ? to list commands.

pylucid_admin.py> ?

Hint: All commands can be called directly from commandline.
e.g.: $ ./pylucid_admin.py help

Use <tab> to command completion.

Documented commands (type help <topic>):
========================================
change_editable_address  pip_freeze  run_test_project_dev_server
create_page_instance     pytest      update_env
help                     quit        upgrade_requirements

External applications configuration

Dependency applications may need configuration to work properly.

Please, refer to each application documentation on details.

Backward-incompatible changes

On every update: Run the steps from section 'update': see above.

v3.0 to v3.1

Twitter bootstrap updated from v3 to v4: update you own templates/styles.

v2.1 to v3.0

Create a new, fresh PyLucid environment and a new page instance. See "install" section above. Transfer settings e.g.: Database connection information.

Just run "migrations" and "collectstatic" and update you own templates/styles.

Older changes are here: https://www.pylucid.org/de/blog/tag/backward-incompatible/

Compatible Matrix

PyLucid Django-CMS Django Python
V3.0 V3.4 LTS V1.11 LTS 3.5, 3.6
v2.1 v3.3 v1.8 LTS 3.4, 3.5
v2.0 v3.2 v1.8 LTS 3.4, 3.5
<=v1.6 - v1.6 2.6, 2.7

Release History

(Not all old releases are listed.)

For older PyLucid history, look at:

donation

links

Homepage http://www.pylucid.org
Sourcecode @ GitHub github.com/jedie/PyLucid
Python Package Index pypi.org/project/PyLucid/
IRC #pylucid on freenode.net