Django: Unterschied zwischen den Versionen
Zur Navigation springen
Zur Suche springen
(20 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt) | |||
Zeile 3: | Zeile 3: | ||
==Aptana Configuration== | ==Aptana Configuration== | ||
* Win-Preferences->PyDev->Editor->Code Completeion: Apply completion on '.' and '(' | * Win-Preferences->PyDev->Editor->Code Completeion: Apply completion on '.' and '(' | ||
+ | |||
+ | ==Install Packages== | ||
+ | * Find version: https://pypi.python.org/pypi/ | ||
+ | |||
+ | ==Django CMS== | ||
+ | Best Practices: | ||
+ | * Test web pages always with "Preview". When the page is ready see it with "Publish". | ||
+ | |||
+ | ==Virtualenv== | ||
+ | Activate: | ||
+ | * source <your_environment>/bin/activate | ||
+ | * . ~/.environments/<your_environment>/bin/activate | ||
+ | |||
+ | See: | ||
+ | [http://pad.sinnwerkstatt.com/p/backend-guidelines Backend Guidelines of Sinnwerkstatt] | ||
+ | |||
+ | ===Virtualenv Wrapper=== | ||
+ | * [http://virtualenvwrapper.readthedocs.org Virtualenv Wrapper Docs] | ||
+ | ** sudo pip install virtualenvwrapper | ||
+ | ** Add to your .bashrc: | ||
+ | *** export WORKON_HOME=~/path/to/your/virtualenvironments | ||
+ | *** export PROJECT_HOME=~/path/to/your/workspace | ||
+ | *** source /usr/local/bin/virtualenvwrapper.sh | ||
+ | ** Restart your bash | ||
+ | ** To add a project to the wrapper: | ||
+ | *** Cd to your project and activate its virtualenv | ||
+ | *** <pre>setvirtualenvproject $VIRTUAL_ENV $(pwd)</pre> | ||
+ | *** Then you can use "workon <project_folder_name>" to active and cd to the project. | ||
+ | |||
+ | ===PIP=== | ||
+ | * sudo pip install <package_name> - installs the package globally | ||
+ | * pip install <package_name> - installs the package in the current python context (often in the virtualenv) | ||
==Tutorials== | ==Tutorials== | ||
Zeile 22: | Zeile 54: | ||
* Install Databases | * Install Databases | ||
~/.environments/<PROJEKT>env/bin/pip install -r requirements.txt | ~/.environments/<PROJEKT>env/bin/pip install -r requirements.txt | ||
+ | |||
+ | ==Requirements.txt== | ||
+ | On change of the requirements.txt: | ||
+ | * pip install -r requirements.txt | ||
+ | * <ENV> manage.py '''syncdb''' | ||
+ | * <ENV> manage.py '''migrate''' | ||
==Migrations== | ==Migrations== | ||
* Migrate on change of requirements.txt, e.g. new tables are added. | * Migrate on change of requirements.txt, e.g. new tables are added. | ||
+ | ** <ENV> manage.py '''syncdb''' | ||
** <ENV> manage.py '''migrate''' | ** <ENV> manage.py '''migrate''' | ||
* Migrate on model change: | * Migrate on model change: | ||
Zeile 30: | Zeile 69: | ||
** manage.py migrate app_name | ** manage.py migrate app_name | ||
* [http://www.djangopro.com/2011/01/django-database-migration-tool-south-explained/ Django database migration tool: south, explained] | * [http://www.djangopro.com/2011/01/django-database-migration-tool-south-explained/ Django database migration tool: south, explained] | ||
+ | * Delete migration | ||
+ | ** manage.py migrate <app_name> <number_of_migration_to_rollback_to> | ||
+ | ** delete file | ||
==Internationalization== | ==Internationalization== | ||
* [https://docs.djangoproject.com/en/1.5/topics/i18n/translation/#how-django-discovers-translations How Django discovers translations] | * [https://docs.djangoproject.com/en/1.5/topics/i18n/translation/#how-django-discovers-translations How Django discovers translations] | ||
* Create or update message files: | * Create or update message files: | ||
− | ** | + | ** manage.py makemessages -l de |
+ | * Compile: | ||
+ | ** manage.py compilemessages -v 2 -l de | ||
* Compile all: | * Compile all: | ||
** bash compilemessages.sh | ** bash compilemessages.sh | ||
Zeile 47: | Zeile 91: | ||
** ) | ** ) | ||
** Stackoverflow: http://stackoverflow.com/questions/1832709/django-how-to-make-translation-work?rq=1 | ** Stackoverflow: http://stackoverflow.com/questions/1832709/django-how-to-make-translation-work?rq=1 | ||
+ | |||
+ | ==AJAX== | ||
+ | * http://www.dajaxproject.com/ | ||
==REST== | ==REST== | ||
− | [http://django-rest-framework.org/ Django REST Framework] | + | * [http://django-rest-framework.org/ Django REST Framework] |
+ | |||
+ | ==AngularJS== | ||
+ | * [https://www.youtube.com/watch?v=Q8FRBGTJ020 django-rest-framework and angularjs] | ||
+ | |||
+ | ==Best Practices== | ||
+ | * [http://de.slideshare.net/DZPM/12-tips-on-django-best-practices 12 tips on Django Best Practices] | ||
==Hosting== | ==Hosting== |
Aktuelle Version vom 30. August 2013, 09:44 Uhr
Django - a high-level Python Web framework that encourages rapid development and clean, pragmatic design.
Aptana Configuration
- Win-Preferences->PyDev->Editor->Code Completeion: Apply completion on '.' and '('
Install Packages
- Find version: https://pypi.python.org/pypi/
Django CMS
Best Practices:
- Test web pages always with "Preview". When the page is ready see it with "Publish".
Virtualenv
Activate:
- source <your_environment>/bin/activate
- . ~/.environments/<your_environment>/bin/activate
See: Backend Guidelines of Sinnwerkstatt
Virtualenv Wrapper
- Virtualenv Wrapper Docs
- sudo pip install virtualenvwrapper
- Add to your .bashrc:
- export WORKON_HOME=~/path/to/your/virtualenvironments
- export PROJECT_HOME=~/path/to/your/workspace
- source /usr/local/bin/virtualenvwrapper.sh
- Restart your bash
- To add a project to the wrapper:
- Cd to your project and activate its virtualenv
setvirtualenvproject $VIRTUAL_ENV $(pwd)
- Then you can use "workon <project_folder_name>" to active and cd to the project.
PIP
- sudo pip install <package_name> - installs the package globally
- pip install <package_name> - installs the package in the current python context (often in the virtualenv)
Tutorials
Style Guides
Images
- http://www.sandersnewmedia.com/why/2012/04/16/installing-pil-virtualenv-ubuntu-1204-precise-pangolin/ - fix image showing problem.
Configure with PyCharm
Databases
- Install Databases
~/.environments/<PROJEKT>env/bin/pip install -r requirements.txt
Requirements.txt
On change of the requirements.txt:
- pip install -r requirements.txt
- <ENV> manage.py syncdb
- <ENV> manage.py migrate
Migrations
- Migrate on change of requirements.txt, e.g. new tables are added.
- <ENV> manage.py syncdb
- <ENV> manage.py migrate
- Migrate on model change:
- manage.py schemamigration app_name --auto
- manage.py migrate app_name
- Django database migration tool: south, explained
- Delete migration
- manage.py migrate <app_name> <number_of_migration_to_rollback_to>
- delete file
Internationalization
- How Django discovers translations
- Create or update message files:
- manage.py makemessages -l de
- Compile:
- manage.py compilemessages -v 2 -l de
- Compile all:
- bash compilemessages.sh
If you have problems with translating strings:
- read How Django discovers translation https://docs.djangoproject.com/en/1.5/topics/i18n/translation/#how-django-discovers-translations
- Define in your settings.py to make sure that strings are first read from the directory defined by you:
- BASEPATH = realpath(join(dirname(_file), '..'))
- LOCALE_PATHS = (
- join(BASE_PATH, 'locale'),
- )
- Stackoverflow: http://stackoverflow.com/questions/1832709/django-how-to-make-translation-work?rq=1