Модераторы: Daevaorn
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Веб-интерфейс для Базы Данных, cherrypy и исправление кода для БД 
:(
    Опции темы
OlgA88
Дата 30.4.2010, 21:18 (ссылка)    | (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 2
Регистрация: 3.12.2008

Репутация: нет
Всего: нет



Вот такой вопрос! Есть справочник телефонных абонентов. Для него делаю веб-интерфейс! В питоне не очень разбираюсь но по примеру получился интерфейс для csv-файла. 
Но необходимо подключиться к базе данных mysql, и оттуда брать данные.
Как это делается в питон-файлах?
Подскажите, где необходимо это подключение прописать!?)
По аналогии разобраться могу, а просто из головы взять сложно!)

Код

"""
Web интерфейс 
"""

import os
from Cheetah.Template import Template
import cherrypy

class Root:
  @staticmethod
  def prepare(telephoneDir):
    Root.collaborators = list(sorted(telephoneDir.subdivision))
    Root.subdivisions = list(sorted(telephoneDir.subdivision.iterSubdivision()))
    Root.subdivisions.insert(0, 'все')
    Root.telephoneTypes = list(sorted(telephoneDir.telephones.telephoneTypes))
    Root.telephoneTypes.insert(0, 'все')
    Root.telephoneDir = list(sorted(telephoneDir))

  @cherrypy.expose
  def index(self, page='0', subdivision='0', collaborator='', number='', telephoneType='0'):
    page = int(page)
    subdivision = int(subdivision)
    telephoneType = int(telephoneType)

    if not subdivision:
      lambdaSubdivision = lambda rec: True
    else:
      s = Root.subdivisions[subdivision]
      lambdaSubdivision = lambda rec: rec.collaborator in s

    if not collaborator:
      lambdaCollaborator = lambda rec: True
    else:
      l = len(collaborator)
      lambdaCollaborator = lambda rec: str(rec.collaborator)[0:l] == collaborator

    if not number:
      lambdaNumber = lambda rec: True
    else:
      l = len(number)
      lambdaNumber = lambda rec: str(rec.telephone.number)[0:l] == number

    if not telephoneType:
      lambdaTelephoneType = lambda rec: True
    else:
      t = Root.telephoneTypes[telephoneType]
      lambdaTelephoneType = lambda rec: rec.telephone.type == t

    root = Template(file=os.path.join(os.curdir, 'index.tmpl'))
    root.page = page
    root.subdivision = subdivision
    root.subdivisions = Root.subdivisions
    root.collaborator = collaborator
    root.number = number
    root.telephoneType = telephoneType
    root.telephoneTypes = Root.telephoneTypes
    root.telephoneDir = filter(lambda telephone: lambdaSubdivision(telephone) and \
                                                 lambdaCollaborator(telephone) and \
                                                 lambdaNumber(telephone) and \
                                                 lambdaTelephoneType(telephone), Root.telephoneDir)
    return str(root)

root = Root()

cherrypy.config.update({
  'log.screen': True,
  'environment': 'production',
  'server.socket_port': 8080,
  'server.threadPool':10,
  'tools.staticfile.on': False,
  'tools.sessions.on': True,
  'tools.sessions.timeout': 60,
})

conf = {
  '/style.css': {
    'tools.staticfile.on': True,
    'tools.staticfile.filename': os.path.join(os.getcwd(), 'style.css'),
  },
}

def run(telephoneDir):
  Root.prepare(telephoneDir)
  cherrypy.tree.mount(root, config=conf)
  cherrypy.server.quickstart()
  cherrypy.engine.start()

if __name__ == '__main__':
  import tdcsv
  telephoneDir = tdcsv.load()
  run(telephoneDir)

PM MAIL   Вверх
31416
Дата 1.5.2010, 22:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 126
Регистрация: 3.5.2006

Репутация: нет
Всего: нет



Гуглить не пробовали?
http://hacker-pro.net/showthread.php?t=7403

Цитата(OlgA88 @  30.4.2010,  21:18 Найти цитируемый пост)
Подскажите, где необходимо это подключение прописать!?)

Прописывайте в модуле. Подробнее - как реализовать доступ к соединению с бд

Это сообщение отредактировал(а) 31416 - 1.5.2010, 22:16
--------------------
Мой блог
PM MAIL WWW ICQ   Вверх
OlgA88
Дата 1.5.2010, 22:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 2
Регистрация: 3.12.2008

Репутация: нет
Всего: нет



Спасибо!))
там хорошо написано!) Но про гуглить - как ни странно, но толкового не очень много!)
Вот еще вопрос!) А можно в данном случае прописать доступ к БД в другом файле, 
например mydb.py, 
а в данном файле сервера только написать вызов этого файла
import mydb.py ??
или это совсем не правильно и нужно опять к библиотеке MySQLdb обращаться?))
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Python: Веб-разработка и фреймворки | Следующая тема »


 




[ Время генерации скрипта: 0.0386 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.