Электродневник+Django

Материал из wiki.nntc.nnov.ru
Версия от 21:40, 10 ноября 2013; Vovan (обсуждение | вклад) (Установка дневника посредством скриптов)
(разн.) ← Предыдущая | Текущая версия (разн.) | Следующая → (разн.)
Перейти к навигации Перейти к поиску

Актуально для Ubuntu 12.04

Оффсайт проекта

http://school-record-book.ru/

Скачать проект можно так:

wget https://github.com/Entropius/recordbook/archive/master.zip

или так:

git clone https://github.com/Entropius/recordbook.git

Установка

Пакеты из репозитория

sudo apt-get install apache2 libapache2-mod-wsgi mysql-server python-virtualenv python-mysqldb python-django python-pytils python-django-south python-demjson git

Загрузка проекта из репозитория git

sudo apt-get install git
cd /var/www/
ls
sudo rm index.html
sudo chmod 777 .
git clone git://github.com/Entropius/recordbook.git .

Создание MySQL пользователя=пароля=базы_данных=odaybook (из консоли linux)

mysql -u root -p

далее из консоли MySQL (mysql>):

CREATE USER 'odaybook'@'localhost' identified by 'odaybook';
CREATE DATABASE odaybook CHARACTER SET utf8 COLLATE utf8_unicode_ci;
GRANT ALL ON odaybook.* to 'odaybook'@'localhost';
exit

Немного подшаманим дефолтный конфиг

Это нужно, чтобы создание БД при установке системы происходило не под пользователем root с паролем 123, а под созданным нами пользователем odaybook с созданным нами паролем odaybook.

Не у всех же один сервер под одну систему ;-) Так будет правильнее, ИМХО.

Откроем файл:

nano /var/www/odaybook/settings_dist.py

И приведем конфигурацию подключения к БД и название БД в соответствии с нашими требованиями, заодно настроем админа системы е его электропочту.

Пример настроенного файла на администратора с электропочтой admin@nntc.nnov.ru и базу данных, расположенную в MySQL на localhost с логином=паролем=именем_базы_данных=odaybook:

...
ADMINS = (
    ('admin', 'admin@nntc.nnov.ru'),
)

MANAGERS = ADMINS

PROJECT_DIR = os.path.dirname(os.path.abspath(__file__))

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.mysql', # Add 'postgresql_psycopg2', 'postgresql', 'mysql', 'sqlite3' or 'oracle'.
        'NAME': 'odaybook',            # Or path to database file if using sqlite3.
        'USER': 'odaybook',                  # Not used with sqlite3.
        'PASSWORD': 'odaybook',               # Not used with sqlite3.
        'HOST': '',                      # Set to empty string for localhost. Not used with sqlite3.
        'PORT': '',                      # Set to empty string for default. Not used with sqlite3.
    }
}
...

Настройка виртуального хоста apache

sudo nano /etc/apache2/sites-enabled/000-default

заменить содержимое файла на

 <VirtualHost *:80>
	ServerAdmin webmaster@localhost

    DocumentRoot /var/www
    
    Alias /media /var/www/media

    WSGIScriptAlias / /var/www/webapp.wsgi
    WSGIDaemonProcess odaybook user=administrator group=administrator threads=1 processes=1 display-name=%{GROUP} maximum-requests=1
    WSGIProcessGroup odaybook
	
	ErrorLog /var/log/apache2/odaybook_error.log

	# Possible values include: debug, info, notice, warn, error, crit,
	# alert, emerg.
	LogLevel info

	CustomLog /var/log/apache2/odaybook_access.log combined

</VirtualHost>
sudo /etc/init.d/apache2 restart

Установка дневника посредством скриптов

cd /var/www
./build/buildenv.sh
./odaybook/manage.py syncdb

на вопрос типа

You just installed Django's auth system, which means you don't have any superusers defined.
Would you like to create one now? (yes/no):

ответить:

no

далее команда:

python ./odaybook/manage.py shell

откроется консоль python:

Python 2.7.1+ (r271:86832, Apr 11 2011, 18:05:24) 
[GCC 4.5.2] on linux2
Type "help", "copyright", "credits" or "license" for more information.
(InteractiveConsole)
>>>
в ней пишем:
from odaybook.userextended.models import Superuser
Superuser(last_name = 'Pupkin', first_name='Vasya', username='admin', email='pupkin@gmail.com').save()
exit()

где

Pupkin - Фамилия

Vasya - Имя

admin - Имя пользователя

pupkin@gmail.com - емэйл, на который придет пароль от учетной записи admin (aka Pupkin Vasya)