FastNetMon

Показаны сообщения с ярлыком SQLAlchemy. Показать все сообщения
Показаны сообщения с ярлыком SQLAlchemy. Показать все сообщения

пятница, 16 декабря 2011 г.

Установка SQLAlchemy на Debian 6 Squeeze

Ставим нужные пакеты (С-зависимости необходимы для сборки бинарных библиотек, ускоряющих работу SQLAlchemy):
apt-get install -y python-pip gcc python2.6-dev

Ставим библиотеку:
pip install sqlalchemy

Ставим библиотеку для поддержки требуемого движка СУБД:
apt-get install -y python-mysqldb

Убеждаемся, что все установилось корректно:
python
Python 2.6.6 (r266:84292, Dec 26 2010, 22:31:48)
[GCC 4.4.5] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import sqlalchemy
>>> sqlalchemy.__version__
'0.7.4'
>>>

Все!

Написано на базе инструкции: http://phpsuxx.blogspot.com/2009/10/pylons_18.html

среда, 21 октября 2009 г.

Pylons: CRUD для SQLAlchemy

Итак, мы дошли до самого интересного -- качественного CRUD интерфейса для работы с SQLAlchemy.

Вот ссылка: http://docs.formalchemy.org/current/ext/pylons.html#administration-interface

Запускаем:
paster create -t pylons_fa myapp


И конфигурируем следующим образом:

Enter admin_controller (Add formalchemy's admin controller) [False]: True
Enter template_engine (mako/genshi/jinja2/etc: Template language) ['mako']: mako
Enter sqlalchemy (True/False: Include SQLAlchemy 0.5 configuration) [False]: True



После этого конфигурируем модель: http://phpsuxx.blogspot.com/2009/10/pylons_18.html

Теперь открываем: http://127.0.0.1/admin

Но у меня закрался баг -- слетели стили и все стало жутко некрасиво (ошибка в стиле: "/admin/_static//admin.css" ).

Переходим в папку cd myapp/public/ и стаскиваем следующие файлы:

wget http://formalchemy.googlecode.com/hg/formalchemy/ext/pylons/resources/edit.png
wget http://formalchemy.googlecode.com/hg/formalchemy/ext/pylons/resources/add.png
wget http://formalchemy.googlecode.com/hg/formalchemy/ext/pylons/resources/admin.css
wget http://formalchemy.googlecode.com/hg/formalchemy/ext/pylons/resources/delete.png


Теперь открываем файл admin.css и заменяем все упоминания png файлов с ./edit.png на edit.png

А также добавляем строки:

.ui-icon-circle-plus {
background-image: url(add.png);
)


Теперь идем в папку: myapp/templates/forms/ и открываем файл: restfieldset.mako и там строчку:

href="${url('fa_static', path_i nfo='/admin.css')}"

меняем на

href="/admin.css"



Итого - вещь ОЧЕНЬ сырая и насмерть завязанная на Mako. Так что ищем альтернативы или пишем сами.

понедельник, 19 октября 2009 г.

Pylons: работа с БД средствами SQLAlchemy

Для начала подключаем необходимые для работы классы, в файле
vi myapp/controllers/main.py
в верху добавляем:


from myapp.model import meta
from myapp import model


Первое импортирует служебный класс meta, используемый для работы SQLAlchemy, а второе импортирует наши классы модели.

Теперь в файл
vi myapp/controllers/main.py
добавляем код записи в БД:

def db_write(self):
new_user = model.Person()
new_user.name = "Pavel"

meta.Session.add(new_user)
meta.Session.commit()



Теперь открываем нашу страницу через веб и следим, чтобы все прошло без ошибок:
http://127.0.0.1/main/db_write


Теперь напишем контроллер, который выдаст нам содержимое БД:


def db_read(self):
person_q = meta.Session.query(model.Person)
c.all_users = person_q.filter(model.Person.name=='Pavel').all()

return render("main/db_read.html")


Теперь необходимо создать шаблон:
vim myapp/templates/main/db_read.html


Вот его текст:


<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:py="http://genshi.edgewall.org/"
lang="en">
<ul>
<li py:for="item in c.all_users">${item.id}:${item.name}</li>
</ul>
</html>




Теперь открываем страницу: http://127.0.0.1/main/db_read и любуемся нашим креативом =)

Итак, нам осталось разобраться с формами, пагинацией и все, можно будет приступать к созданию новых клевых сервисов =)