Найти - Пользователи
Полная версия: Вопрос по Джанго
Начало » Python для новичков » Вопрос по Джанго
1
roggerg
Пытаюсь решить задачу из курса Web Технологи на Степике
Нужно отобразить вопрос который находится по
URL
/question/5

Мой urlpaterns приложения выглядит так
 urlpatterns = [
    url(r'^question/(?P<pk>\d+)/$', views.question, name='question_text'),
]

функция question из вьюшки
 def question(request, pk):
    id = request.GET.get(pk)
    t = Question.objects.get(id)
    return render(request, 'question.html', {
        'title': t.title,
        'text': t.text
    })
Проверяю работу приложения на локальном компе,
Получаю ошибку

Type error

И далее смотрю параметр GET

<WSGIRequest: GET ‘/question/1/’>

Т.е. получается что “1” не захватывается в переменную pk, и там находится выражение
pk='/question/1/'
что логично и приводит к ошибке type error.
Что я сделал не так?
FishHook
roggerg
roggerg
Что я сделал не так?
Практически все
1) За чем вы вы пытаетесь получить pk из реквеста, если это - агрумент функции? Он уже есть, зачем его еще откуда-то получать?
2) Question.objects.get(id)
Это у вас не сработает

 def question(request, pk):
    t = Question.objects.get(id=pk)
    return render(request, 'question.html', {
        'title': t.title,
        'text': t.text
    })
roggerg
FishHook
roggerg
Спасибо, все заработало как надо.
John_Rain
Ребята, я новенький. Чтобы не флудить в корне форума, можно я здесь о своем вопросе поинтересуюсь? У меня вопрос как раз о python + django
Суть такая, я сам не программист. Заказал сайт опытному человеку. Заплатил нормально. Сайт до конца еще не доделан, но работает. Вопрос: Правильно ли просить у исполнителя исходники? Я так понимаю Python интропретируемый язык, по идеи все труды закидываются на хостинг без компеляции. Значит ли это что имея доступ до файлов на хостинге у меня есть все исходники или этого не достаточно? Мне важно иметь страховку на случай если мой программист вдруг откажется или не сможет продолжать или поддерживать проект и мне придется искать другого исполнителя
py.user.next
John_Rain
Я так понимаю Python интропретируемый язык, по идеи все труды закидываются на хостинг без компеляции. Значит ли это что имея доступ до файлов на хостинге у меня есть все исходники или этого не достаточно?
Исходники тоже по-разному можно сделать. Можно сделать так, что всё будет работать, но в исходниках не разберёшься. Да и они могут быть ужасными сами по себе, даже не специально сделанными в таком виде. По крайней мере когда какие-нибудь готовые плагины открываешь к браузеру или ещё какие-нибудь такие программки с открытым исходным кодом, там такой бардак, что лучше было и не открывать, потому что автор чисто для себя код писал и лишь бы работало.
Elaphe
Значит ли это что имея доступ до файлов на хостинге у меня есть все исходники
Значит.
John_Rain
py.user.next
для себя код писал и лишь бы работало
Это понятно. Так всё-же, имея доступ до хостинга, до папки с сайтом, мне не нужны исходники? Другому программисту на python этого будет достаточно? Или есть что-то без чего я не смогу продолжить работу?
py.user.next
John_Rain
Так всё-же, имея доступ до хостинга, до папки с сайтом, мне не нужны исходники?
По-разному может быть. Можно из исходников сделать свалку, которая будет понятна лишь компьютеру. А чтобы дорабатывать программу, нужны нормально написанные исходники.

Вот пример исходников, которые прекрасно работают
https://yastatic.net/www/_/9/q/bn1iJy4ikfp2ZikJTLboMVeB8.js
Возьми, доработай.

И это ещё просто для оптимизации сделано (всё склеено в одну строку, чтобы быстрее загружалось), а можно ещё обфусцировать исходники. Это вот когда вирусы прячут от антивирусов, применяют к исходнику вируса программу, которая его запутывает специально. Ну и к работадателю можно применить, вдруг он там платить откажется или уволит просто так ни за что. Вроде сайт работает, всё нормально, человек уходит и нормальные исходники уносит с собой, а ты даже об этом не знаешь. Но когда тебе нужно будет его доработать или баг поправить, твой новый специалист залезет туда, а там куча мусора, в которой непонятно, где и что. И всё, и будет он заново всё писать.

Да даже если они в нормальном виде, развёрнутая программа не равна исходному коду, из которого она развёрнута. У меня исходники в виде шаблонов лежат в проекте, и каждый раз, чтобы поставить их, я их собираю. А при сборке в них проставляется лицензия, потом дата текущая, версия текущая (во все места, во все закоулки). Это через m4 сделано, поэтому у меня в каждом исходнике во всех нужных местах стоит всегда только актуальная информация. Если мне надо почтовый адрес для обратной связи поменять во всей программе, я просто меняю его в одном месте и при следующей сборке новый адрес проставится во все десятки исходных файлов, и в каждом файле ещё может быть несколько таких мест.

Это я к тому, что наличие исходников ещё ничего не значит, потому что там ещё проект надо обслуживать правильно.
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB