anton_nazarov: (Default)
Решил тут довольно неприятную проблему при использовании Django с SQLite - невозможность делать регистронезависимые выборки из базы для языков, отличных от английского.
Решение тут.

Поможет всем, кто сталкивался с такой проблемой при использовании SQLite (не только в Django и Python).
anton_nazarov: (Default)
Сейчас в нашем проекте мы используем фреймворк Django.

Django - это фреймворк для быстрой разработки веб-приложений на языке Python.
Он следует паттерну MVC. Типичное приложение, использующее Django состоит из следующих частей.


  • Модель - набор классов, содержащих данные, и хранящихся в СУБД посредством ORM, предоставляемого фреймворком.

    Выглядит примерно так:
          class Blog(Model):
             author = ForeignKey(User)
             title = CharField(max_length=200)
    
          class Entry(Model):
             blog = ForeignKey(Blog)
             text = TextField()
             date = DateField()
        



  • View - функции, реализующие логику обработки данных и навигации между страницами. Например:
          def show_entries(request):
             entries = Entry.objects.all()
             return render_to_response("entries.html",{"list":entries})
    
          def post_entry(request):
             if request.user.is_authenticated():
                form = PostEntryForm(request)
                if form.is_valid():
                   form.save()
                   return HttpResponseRedirect("/")
                
                return render_to_response("post.html",{"form":form})
    
             return HttpResponseRedirect("/login")
        


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


  • Шаблоны страниц - шаблоны страниц или других документов, используемых для представления информации пользователям. Django содержит довольно простой и удобный язык шаблонов, странички могут выглядеть так:
          <html><body>
    	  {% for entry in list %}
    	  <div>
    	    {{ entry.text }}
    	  </div>
    	  {{ entry.date }}
    	  {% end for %}
          </body></html>
        




Использование тех или иных возможностей Django не является обязательным. Вместе с тем в Django очень много различных помогающих вещей.

Тем не менее, нельзя сказать, что сейчас разработка идет у нас легко и быстро. Причина состоит в том, что использование мощного фреймворка приводит к желанию реализовывать сложную функциональность сразу. Так, я пару дней потратил на регистрацию/авторизацию по OpenID и автоматическую генерацию паролей с их отправкой по электронной почте.
Создание дизайна страничек по-прежнему требует значительных усилий и умения, а кроме того, с Django не работает любимый java-разработчиков по изучению новых технологий - написать любую букву и нажать Ctrl-Space. Приходится читать документацию.
Документация у Django отличная, почти про все написаны исчерпывающие тексты, в которых описаны различные сценарии использования компонентов. В открытом доступе есть так же и книга, которая во многом повторяет документацию, однако содержит дополнительные разъяснения и комментарии по многим практическим вопросам.

Я думаю, что на следующей неделе наша производительность увеличится, так как участники проекта привыкнут к используемой технологии и к совместной работе :)

Profile

anton_nazarov: (Default)
anton_nazarov

September 2014

S M T W T F S
 123456
78910111213
14 151617181920
21222324252627
282930    

Syndicate

RSS Atom

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated Sep. 7th, 2025 05:27 pm
Powered by Dreamwidth Studios