Для тех кто в 2021. url теперь не может быть строкой только именем функции так что urlpatterns = [ url(r'^/1', basic_one) ] basic_one без кавычек
@АлександрСайганов-т5у3 жыл бұрын
Добрый день! Спасибо за уроки! Так и не разобрался что нужно псиать в урлах нового джанги. Есть ли какой-то листинг этих файлов с исправлениями?
@freedombird10353 жыл бұрын
А зачем эти все символы - r'^/1' ? Я из 2021 и мне джанго подсказывает в коментах писать просто 'admin/' или " " или 'blog/'
@Израильнасвязи11 жыл бұрын
Спасибо! Отличная дикция! И много сложной информации объясняете простым и понятным языком. Я не видел еще таких видео.
@ИгорьИващенко-л5и7 жыл бұрын
эти уроки становится еще более полезным по истечению времени :) только потому что ты делаешь все как у автора, а у тебя появляются ошибки (ввиду того что на данный момент новая версия Django) и ты сам эти ошибки решаешь тем самым качая в себе дисциплину что ли :) спасибо за тутор.
@mikkimouse13664 жыл бұрын
Очень Хороший канал , обалденные объяснения . Автору успехов и не болеть
@MrAlan4ik6 жыл бұрын
Для тех кто из 2018 и далее... ;) В файте settings: 'DIRS': [ os.path.join(BASE_DIR, "templates") ], В файле firstapp/urls.py from django.contrib import admin from django.urls import path from django.conf.urls import include urlpatterns = [ path('admin/', admin.site.urls), path('article/', include('article.urls')), ] В файле article/urls.py from django.urls import path from article import views urlpatterns = [ path('1/', views.basic_one), path('2/', views.template_two), path('3/', views.template_three), ] и в views.py def template_two(request): view = 'template_two' t = get_template('myview.html') html = t.render({'name': view}) return HttpResponse(html) так должно все работать.
@qstart65086 жыл бұрын
Спасибо - долго мучился) подскажи, знающий человек, в каком случае на данном примере правильно использовать директорию templates/myview.html, а в каком templates/article/myview.html, в туториалах и так, и так используют, в чем суть?
@kirylvalkovich10 жыл бұрын
Спасибо огромное. Продолжай в том же духе.
@ДмитрийКотик-и1р6 жыл бұрын
Огромное спасибо за урок!. Немного устарело, но основа от версии к версии не меняется. На данный момент версия джанги 2.1 , и в маршрутизации не используется url(...), а используется path(...) или re_path(...), если указываешь строку для регулярного выражения. Это если кому интересно
@winternight47546 жыл бұрын
Во втором способе, который "template_two" В новых версиях Джанго(старше 1.9) необходимо удалить Contex() Строка будет выглядеть так "html = t.render({'name': view})" Версия Джанго 2.2b1 Автору спасибо за уроки !
@azaz92358 жыл бұрын
Спасибо!!! Отличный курс, более понятного изложения материала найти так и не смог)
@miladsharifov33609 жыл бұрын
Очень просто и наглядно !!! но нужно смотрет с скоростью 2 :))
@ДаниилКиктенко9 жыл бұрын
+milad sharifov Твоя мысль меня спасла!))
@miladsharifov33609 жыл бұрын
+Даниил Киктенко я очень рад )) я уже закончил этот видеокурс - если будут вопросы то смело спрашивай ))
@leviafanux9 жыл бұрын
и чтобы не писать абсолютный путь, есть решение намного правильней сделать вот так :) from os.path import join TEMPLATE_DIRS = ( join(BASE_DIR, 'templates'), ) на здоровье господа!
@Schiz20098 жыл бұрын
Добавлю, что в последней версии Django нельзя импортировать пути в url() - нужно импортировать собственно функцию представления, поэтому придется все же писать их в urls.py папки firstapp: from django.conf.urls import url from django.contrib import admin from article.views import basic_one, template_two, template_three_simple urlpatterns = [ url(r'^admin/', admin.site.urls), url(r'^basicview/1', basic_one), url(r'^basicview/2', template_two), url(r'^basicview/3', template_three_simple), ] и т.д. Если есть другой способ - просветите TEMPLATE_DIRS тоже уже не работает, путь пишите в значение по ключу DIRS в переменную TEMPLATES
@АлексейБронштейн-ю7б8 жыл бұрын
ПРАВИЛЬНЫЙ ВАРИАНТ СПС, БРО!
@di_5037 жыл бұрын
Класс!!! Считаю это лучшим тутором по джанге на русском языке , различия версий заставляют шевелить мозг и искать решение. Автору спасибо !!!
@alexeykotenko24327 жыл бұрын
Второй пример немного устарел. Вот как получить template_two: def template_two(request): view = "template_two" html = get_template("вашфайл.html").render({ 'name': view, }) return HttpResponse(html)
@losos60697 жыл бұрын
Помог, спасибо!
@ivaniudin18869 жыл бұрын
почему в первом urls.py url(r'^basicview/', include('article.urls')), мы пишем include, а в нашем созданном urls в папке article пишем url без include: url(r'^1/', ('article.views.basic_one')), ??
@reapersixtysix8 жыл бұрын
А в чем смысл создавать свои пути для шаблонов, если можно просто разместить их папке article/templates?
@ВладБабин-н7ж9 жыл бұрын
django 1.8+ добавлять TEMPLATE_DIRS = [ ] НЕ НУЖНО!!! в TEMPLATES уже предусмотрено что мы будем создавать свои шаблоны, и так в TEMPLATES ищите поле : 'DIRS': [ и вот сюда вставляете ваш абсолютный путь (в моем случае '/home/vlad/djangoenv/bin/firstapp/templates') ] все.
@TitovAndrei9 жыл бұрын
+Влад Бабин Там впереди ещё много несоответствий? Или это всё технические мелочи в разнице между версиями?
@ВладБабин-н7ж9 жыл бұрын
+Андрей Титов впереди еще уйма несоответствий!! (я над ними долго сидел....) (и еще, есть проблема в views.py там ф-ция не правильная) так что если вы будете продолжать идти по этим скринкастам то приготовьтесь листать документацию джанго. =)
@Alexei1938 жыл бұрын
Какая там ф-ция не правильная? у меня все с первого раза заработало. (не считая TemplateDoesNotExist из-за DIRS)
@maksimvasiunin81797 жыл бұрын
Для django 1.8+ можно не задавать путь в настройках. В каталоге с приложением создайте каталог 'templates', внутри которого каталог с названием приложением, в котором будут находится html файлы. Для примера из видео структура будет выглядеть так: article/templates/article/myview.html
@hunterpre7 жыл бұрын
У меня django 1.11. В документации сказано, что TEMPLATES - это список из словарей. В нем есть словарь 'DIRS' : [ ]. В квадратных скобках список путей, туда-то и вставляем путь к папке templates.
@DmitrySazhnev-x3z8 жыл бұрын
а что переменные view делают во всех функциях?
@Afanasi438 жыл бұрын
Я столкнулся с такой проблемой, делал все по инструкции, этап запуска This is basic_one view, сервер тупо не поднимался, скорее всего это из-за того что у меня версия джанго намного свежее чем у автора. проблему нашел в article/urls.py у автора там urlpatterns = patterns( ' ', url(r'^1/, 'article.views.basic_one') ) в таком виде у меня не работало, я переделал на from article import views urlpatterns = [ url(r'^1/', views.basic_one, name='basic_one'), ] сервер поднялся и все заработало. Может быть это просто и очевидно, но я как новичок 'прикурил' здесь)) возможно кому-то еще поможет
@Alpha-ld4ge8 жыл бұрын
Спасиб добрый человек. Два часа бился с этой проблемой.) Вот листинг, что будет к концу урока в *article/urls.py* from django.conf.urls import url from article import views urlpatterns = [ url(r'^1/', views.basic_one, name='basic_one'), url(r'^2/', views.template_two, name='template_two'), url(r'^3/', views.template_three_simple, name='template_tree_simple'), ]
@VitalyPrada8 жыл бұрын
Спасибо) тоже столкнулся с данной проблемой) помогло))
@АлексейБронштейн-ю7б8 жыл бұрын
Я один не вижу конца поста**???
@AnatoliK8 жыл бұрын
там есть ссылка/кнопка "Читать дальше"
@МаксимИващенко-ш5д7 жыл бұрын
сразу видно - будущий программерXD
@somenonameitis8 жыл бұрын
Как решить проблему с patterns? Оно его даже не импортирует! из-за этого все не работает! что делать?
@hunterpre7 жыл бұрын
После описания функции templates_two, при запуске браузер выдал ошибку "context должен быть словарем скорее, чем Context. Переписал строку так: html = t.render({'name': view}) Затем перезапустил и в браузере появилась строка "This is template_two view". ;)
@Proff_Preobrazhensky7 жыл бұрын
спасибо!!!)))
@md5alx9 жыл бұрын
тем у кого вылетает ошибка TemplateDoesNotExist (django 1.8) при работе с шаблонами: в settings.py приложения, если делаете все как в видео, нужно добавить в 'DIRS': ['путь у вашему/templates'],
@aleksandrkurilov25999 жыл бұрын
+Александр Кирилюк Спасибо, ваще помог!
@ЕвгенийЛитвиненко-ф4о10 жыл бұрын
24:20 Почему бы не использовать render_to_response ?
@ЕвгенийЛитвиненко-ф4о10 жыл бұрын
а, все, досмотрел до конца вопрос снимается с повестки дня
@ВладимирКузнецов-э6х7 жыл бұрын
В Джанго 1.11 версии, у меня конфликтует template_two, просто переделал на temlate_two.
@Pa7lux8 жыл бұрын
Грустно, что уроки устарели. В моей версии джанго файл urls выглядит иначе и попытки повторить код привели к тому, что сервер перестал подниматься
@reapersixtysix8 жыл бұрын
гуглить теперь так сложно?
@ВладимирКузнецов-э6х7 жыл бұрын
для версий Дж 1.11 все три файла вот так вышли firstapp from django.conf.urls import url from django.contrib import admin from article.views import basic_one,temlate_two,temlate_three urlpatterns = [ url(r'^admin/', admin.site.urls), url(r'^basicview/1', basic_one), url(r'^basicview/2', temlate_two), url(r'^basicview/3', temlate_three), ] article rom article import views import django.conf.urls.static urlpatterns = [ django.conf.urls.url(r'^1/', views.basic_one, name='basic_one'), django.conf.urls.url(r'^2/', views.temlate_two, name='temlate_two'), django.conf.urls.url(r'^3/', views.temlate_three, name='temlate_three'), ] views from __future__ import unicode_literals from django.http.response import HttpResponse from django.template.loader import get_template from django.shortcuts import render_to_response # Crate your views here. def basic_one(request): view = 'basic_one' html = 'This is %s views' % view return HttpResponse(html) def temlate_two(request): view = 'temlate_two' html = get_template('myview.html').render({'name': view}) return HttpResponse(html) def temlate_three(request): view = 'temlate_three' return render_to_response('myview.html',{'name':view})
@ЕвгенийАнистратов-м3о7 жыл бұрын
Спасибо большое, помогли разобраться с views.py
@Vokash37 жыл бұрын
Всё работает. Также была проблема с views.py. Спасибо!
@user-ug8qc6tr6b9 жыл бұрын
Этот язык шаблонов, типа {{name}} внутренний язык джанго? или это сторонний язык?
@ТёмаТур7 жыл бұрын
это язык шаблонов в джанго. пожобные есть и в других фреймворках.
@TitovAndrei9 жыл бұрын
Зачем нужно использовать два файла *_'urls.py'_*? Разве их нельзя объединить?
@ТёмаТур7 жыл бұрын
модульность же. в каждой приложиухе свои урлы. а так все в куче будет, как на свалке - это шляпа)
@1smolin9 жыл бұрын
тем у кого вылетает ошибка TemplateDoesNotExist (django 1.8) при работе с шаблонами: в settings.py приложения, если делаете все как в видео, закомментируйте блок либо вместо создания TEMPLATE_DIRS в TEMPLATES = [{...'DIRS': [указать путь к шаблону]...}]
@webcraftsman40529 жыл бұрын
Смолин Илья Спасибо за инфу )
@soam81759 жыл бұрын
Смолин Илья фух, спс, я 2 дня гуглил и нифига пока не додумался комменты почитать =)
@mrtrailer33929 жыл бұрын
Смолин Илья а из-за чего возникает ошибка?
@1smolin9 жыл бұрын
Alex Freeman Предполагаю, даже более чем уверен, что ошибка возникает из-за переприсвоения. Питон выполняет код по-строчно, т.е. если А = 8, а на след строке А = 10, то в итоге получим, на выходе 10. Тут так же. Мы TEMPLATE_DIRS указали выше, чем TEMPLATES и его значения мы не меняли, в итоге кортеж ("пути к шаблонам") мы перебили [пустым списком]. Если ошибся в выводе, поправте.
@anatolybobunov9 жыл бұрын
+Смолин Илья Сам как раз копал эту проблему. В Django 1.8 поменяли немного способ объявления Templates. Сижу читаю доку чтобы разобраться, т.к. если закоментировать - работать то работает, но это как то через ж))))) docs.djangoproject.com/en/1.8/ref/templates/upgrading/#the-templates-settings Ниже Александр Кирилюк уже выдал вариант решения ошибки. Но доку почитать для ПОЧЕМУ все равно надо))))
@АртемШикунов-ж3о8 жыл бұрын
4 часа бился, но так не смог понять в чем дело, No module named пишет, все перепробовал, нигде ничего нет. возможно что то с самим питоном, но не может найти функции в view . и не знаю где еще инфу взять....
@alexejferre67538 жыл бұрын
from . import views
@PrivetAltair9 жыл бұрын
чет после Rails как-то слишком долгим и тяжёлым кажется Django
@gryshavoron233111 жыл бұрын
Столкнулся с проблемой. В settings.py я сделал так TEMPLATE_DIRS = (os.path.join(BASE_DIR, 'templates'),), и если со вторым вариантом template_two все работает нормально и шаблон отображается, то вот с третьим вариантом, т.е. template_three_simple выдает ошибку NameError at /basicview/3/ global name 'render_to_reponse' is not defined. вот ссылка на отчет dpaste.com/1661978/
@devops_ru11 жыл бұрын
такой импорт есть? from django.shortcuts import render_to_response
@gryshavoron233111 жыл бұрын
есть, уже разобрался. оказывается 's' пропустил в render_to_response. Всё равно спасибо. Хорошие уроки.
@EfifiProfifi6 жыл бұрын
Слишком громко по клаве и мышке бьёт)
@denkneb8 жыл бұрын
For Django 1.10 urlpatterns docs.djangoproject.com/en/1.10/topics/http/urls/#url-dispatcher
@saneksuhrin3057 жыл бұрын
Кому интересно, эти же уроки прохожу, django 1.11.2 github.com/alexsukhrin/django.git
@Jariarh10 жыл бұрын
Немного тормозиш, но в целом пойдет
@sirazhidinovakmatali7 жыл бұрын
html = " Будет так "
@VadimFilin8 жыл бұрын
КаталОООООООООООООООООООООг!
@GauchoPro7 жыл бұрын
Сделали сайт на Django: greenclean.ua/ Очень приятная СMS, эмоции положительные!
@ИванМанойленко-н3ъ10 жыл бұрын
Временами тупишь, но в общем пойдет.
@putin-chuylo7 жыл бұрын
TEMPLATES_DIR = моветон, получше будет os.path.join()