Создание Django проекта с нуля
- ...самая острая память - тупой карандаш.
1. Оснастка сервера
Необходимые пакеты
- База данных
postgresql postgresql-8.4 postgresql-client postgresql-client-8.4 postgresql-client-common postgresql-common postgresql-contrib postgresql-contrib-8.4 postgresql-doc postgresql-doc-8.4
- Фреймворк Django
python-django python-django-doc python-anyjson
- Доступ к PostgreSQL из Python
python-psycopg2
- Модуль для обработки JSON
python-simplejson
- Дополнения к Django
django-ajax-selects django-filter django-tables
- Библиотеки JS (пока не знаю как они используются, и вообще используются ли)
libjs-jquery libjs-jquery-cookie libjs-jquery-easing libjs-jquery-event-drag libjs-jquery-event-drop libjs-jquery-fancybox libjs-jquery-form libjs-jquery-galleriffic libjs-jquery-history libjs-jquery-jfeed libjs-jquery-jush libjs-jquery-livequery libjs-jquery-meiomask libjs-jquery-metadata libjs-jquery-mousewheel libjs-jquery-opacityrollover libjs-jquery-tablesorter libjs-jquery-tipsy libjs-jquery-treetable libjs-jquery-ui libjs-jquery-ui-docs libjs-json
- Веб сервер
apache2 apache2-mpm-prefork apache2-utils apache2.2-bin apache2.2-common
На заметку: мой сорс лист полный бэкап моих пакетов dpkg --get-selections >myselections - создать бэкап dpkg --set-selections <myselections - загрузить бэкап
Настройка БД PostgreSQL
Оригинал статьи, но всякое бывает, поэтому продублирую.
Устанавливаем phpPgAdmin:
#apt-get install phppgadmin
Системный пользователь БД в PostgreSQL называется postgres. Установим ему пароль следующей командой:
#passwd postgres
Присваиваем пароль супепользователю БД (postgres):
#su postgres -c psql postgres psql (8.4.7) Type "help" for help.
postgres=# postgres=# ALTER USER postgres WITH PASSWORD '[PASS]';
[PASS] - пароль пользователя postgres
Выходим:
postgres=# \q
Открваем конфиг:
#nano /etc/postgresql/8.4/main/postgresql.conf
В секции CONNECTIONS AND AUTHENTICATION раскоментируем следующие строки:
listen_addresses = 'localhost' password_encryption = on
Открываем pg_hba.conf
#gedit /etc/postgresql/8.4/main/pg_hba.conf
и дописываем в конец:
host all all 192.168.1.2 255.255.255.0 md5
Перезапускаем сервер:
#/etc/init.d/postgresql restart
Cоздаем нового пользователя ‘pgadmin’ с правами администратора:
#sudo -u postgres createuser pgadmin
Задаем пароль пользователю ‘pgadmin’:
#sudo su postgres -c psql postgres postgres=# ALTER USER pgadmin WITH PASSWORD '123456'; postgres=# \q
Заходим на страницу http://localhost/phppgadmin/ и переходим в Servers - PostgreSQL. Указываем 'Имя пользователя' (pgadmin) и 'Пароль' и попадаем в БД.
В качестве боевой помощи PostgreSQL краткая справка по помощи
Программное обеспечение для разработки
- Eclipse IDE for JavaScript Web Developers в сочетании с надстройкой Pydev
- Инструкция по настройке Pydev
- Любимый "блокнот" geany - лучший инструмент для оперирования Jquery, Jquery UI и всего где много вложенных скобок, кавычек и т.д.
- kompozer - лучший визуальный редактор HTML
- Google Chrome + магическое сочетание Ctrl+Shift+j
- Mozilla fireFox + надстройка Web Developer
Настройка и пробный запуск Django проекта
Для справки
Использование Django с PostgreSQL Новый проект Запуск сервера разработки
- В Eclipse создать новый Django проект
- В файле models.py создать модель (описание таблицы БД) Описание полей таблиц, eng.
from django.db import models class ok16(models.Model): id= models.AutoField(primary_key=True) kod=models.CharField(max_length=5) kch=models.CharField(max_length=1) profname=models.CharField(max_length=255) etks=models.CharField(max_length=2) okz=models.CharField(max_length=4) def _unicode_(self): return self.profname class Meta: ordering = ['profname']
- Внимательно прочитать главу
- Настройка БД
- Установка модели - очень часто используется, особенно вначале пути.
- В папке с проектом создать текстовый файл ok1.csv. Расширение не важно, суть в содержимом.
Содержимое файла ok1.csv из wiki копировать в режиме редактирования, иначе формат не сохранится
- В той же папке в Eclipse создать файл import_csv.py. Прямое копирование данных из файла в БД (2 недели разбирался). В БД spravochnik_siz создать таблицу ok16
Пока без комментов, сори. import psycopg2 import sys import csv from string import * def main(): csv_file_name= 'ok1.csv' conn_string = "host='localhost' dbname='spravochnik_siz' user='pgadmin' password='000000'" print "Connecting to database\n ->%s" % (conn_string) try: conn = psycopg2.connect(conn_string) cursor = conn.cursor() #records = cursor.fetchall() #pprint.pprint(records) except: exceptionType, exceptionValue, exceptionTraceback = sys.exc_info() sys.exit("Database connection failed!\n ->%s" % (exceptionValue)) input_file=csv.reader(open(csv_file_name,'rb'), delimiter='#') ##########добавление cursor.execute("SELECT * FROM spravochnik_siz_ok16") ttemp=cursor.fetchall() siz_name_id = len(ttemp)+1 call_zap_vsego=0 call_zap=0 for row in input_file: data1 = {'id':str(siz_name_id), 'kod':row[0], 'kch':row[1], 'profname':row[2], 'etks':row[3],'okz':row[4]} call_zap_vsego=call_zap_vsego+1 try: cursor.execute("""INSERT INTO spravochnik_siz_ok16 VALUES (%(id)s, %(kod)s,%(kch)s, %(profname)s, %(etks)s, %(okz)s);""", data1) siz_name_id = siz_name_id+1 print (row[2]) conn.commit() call_zap=call_zap+1 except: print ("error-",row[0]) exceptionType, exceptionValue, exceptionTraceback = sys.exc_info() sys.exit("Database connection failed!\n ->%s" % (exceptionValue)) print "calichestvo dobavlennih zapisej=",call_zap print "vsego zapisej=",call_zap_vsego print "-------------------------------" cursor.close() conn.close() sys.exit() if __name__ == "__main__": sys.exit(main())
Содержимое файла import_csv.py из wiki копировать в режиме редактирования, иначе формат не сохранится.
Настройка Apache
Ручная настройка проекта Django в Питоне
- лучше использовать тарболл..
- после распаковки тарболла сделать под правами админа python setup.py install
- в каталоге /usr/lib/python2.6/dist-packages/ создать файл django.pth и в нем указать путь проекта /home/user/portal/
- под пользователем даем команду создания проекта django.admin.py startproject portal
- в каталоге проекта (/home/user/portal) для импорта нашего шаблона в urls.py пишем послe первой строки: from portal.views import hello (наша функция hello) и ниже после комментариев ее описываем для вызова через строку в браузере: ('hello/$', hello),
- в каталоге проекта создаем наш шаблон views.py и в нем соблюдая правильно расстановки и переносы пишем нашу программу с функцией hello