@python_beginnersЭта группа больше не существует

Страница 903 из 1885
pride
09.12.2016
22:56:41
дико удобная вещь

Denis
09.12.2016
22:57:49
Почему бы не хранить конфиги в жсоне?

pride
09.12.2016
22:59:10
ну json скорее же xml ровня

не тупо секция - параметр = значение

Google
Pavel
10.12.2016
03:42:02
Почему бы не хранить конфиги в жсоне?
А жсон завезли комментарии?

Nikita
10.12.2016
03:42:24
+

yaml?

Albatrosicks
10.12.2016
04:00:27
ini

.
10.12.2016
04:40:20
Гайс, есть такая конструкция 'thread {}'.format(thread.id) Если пробел между тредом и {} уберу, то получу unsupported operand type(s) for +: 'float' and 'str' А пробел нужно убрать, как решать?

Albatrosicks
10.12.2016
04:43:00
Nikita
10.12.2016
04:43:55
>>> class x: ... id = 1.0 ... >>> x.id 1.0 >>> 'thread {}'.format(x.id) 'thread 1.0' >>> 'thread{}'.format(x.id) 'thread1.0'

.
10.12.2016
04:44:50
если быть точным response.set_cookie('thread {}'.format(thread.id), 'op', '10368000')

.
10.12.2016
04:48:21
не работает это с куками

Pavel
10.12.2016
04:48:34
не работает это с куками
полный трейс покажи.

.
10.12.2016
04:49:25
Traceback: File "/home/pc/DJ/DVACH/dvach_venv/lib/python3.5/site-packages/django/core/handlers/exception.py" in inner 39. response = get_response(request) File "/home/pc/DJ/DVACH/dvach_venv/lib/python3.5/site-packages/django/core/handlers/base.py" in _get_response 187. response = self.process_exception_by_middleware(e, request) File "/home/pc/DJ/DVACH/dvach_venv/lib/python3.5/site-packages/django/core/handlers/base.py" in _get_response 185. response = wrapped_callback(request, *callback_args, **callback_kwargs) File "/home/pc/DJ/DVACH/boards/views.py" in board 68. response.set_cookie('thread{}'.format(thread.id), 'op', '10368000') File "/home/pc/DJ/DVACH/dvach_venv/lib/python3.5/site-packages/django/http/response.py" in set_cookie 200. max_age) Exception Type: TypeError at /po/ Exception Value: unsupported operand type(s) for +: 'float' and 'str'

Pavel
10.12.2016
04:49:27
что за привычка, вывалить три строки кода и показать ексепшен. А где возникает unsupported operation?

Google
.
10.12.2016
04:50:26
thread{} как я понимаю тут

Pavel
10.12.2016
04:54:41
а точно проблема в thread{}, а не в том, что max_age должен быть секундами, а не строкой?

.
10.12.2016
04:55:47
блять...

Спасибо

Pavel
10.12.2016
04:56:38
а теперь думай, как связан пробел и эта хуерга.

.
10.12.2016
04:58:06
какая именно хуерга

Pavel
10.12.2016
04:58:42
max_age и TypeError

.
10.12.2016
05:09:54
Ну тип мне инетерсно почему там float

Мы секунды же вроде к какому-нибудь datetime должны добавлять наверн

.
10.12.2016
05:12:52
кк

Pavel
10.12.2016
05:20:45
Опен сорс же. Смотрите, как всё просто. Функция set_cookie занимает примерно экран, если не убирать комментарии. Из них половина кода отметается, потому что обрабатывает параметр expires, который по умолчанию None. Ещё четверть - одинаковые четыре строки типа if path is not None: self.cookies[key]['path'] = path. Таким образом, если всё лишнее убрать, то остаётся две значащих строки: self.cookies[key]['max-age'] = max_age self.cookies[key]['expires'] = cookie_date(time.time() + max_age) . И ексепшен вылетает на последней.

https://github.com/django/django/blob/master/django/http/response.py#L172

.
10.12.2016
05:26:58
сложно читать чужой код, пока даже мыслей нет залезать в сорцы и смотреть, хотя довольно полезное занятие как оказалось

Pavel
10.12.2016
05:37:16
сложно читать чужой код, пока даже мыслей нет залезать в сорцы и смотреть, хотя довольно полезное занятие как оказалось
точно пока не стоит лезть, если в стектрейсе от твоего кода до места падения 10-15 вызовово чужого кода. Если же трейс выглядит как-то так: не важно что не важно что не важно что не важно что твой код чужой код, в котором упали то можно смело посмотреть чужой код, скорее всего там ничего страшного.

В конце концов, не читая чужой код, трудно научится писать свой.

?

.
10.12.2016
05:44:49
только говнокод

Evgen
10.12.2016
09:14:31
Как направить весь вывод из logging в какую-то функцию в программе? (Python)

Google
Evgen
10.12.2016
09:17:25
@bladdon А как пользоваться MyHandler()? Т.е. какие параметры передаются и как?

Denis
10.12.2016
09:18:26
class MyHandler(logging.Handler): def emit(self, record): ... def handle(self, record): ...

Evgen
10.12.2016
09:19:25
Спасибо

Zart
10.12.2016
09:48:22
дико удобная вещь
дико неудобная и глючная вещь

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

правда это не будет гарантировать "всего вывода"

darkwoolf
10.12.2016
11:37:14
всем привет

есть 3 файла

arisu
10.12.2016
11:37:27
На какой сам сядешь

darkwoolf
10.12.2016
11:37:29
python3 -m http.server —cgi

arisu
10.12.2016
11:37:36
На какой мать посадишь

darkwoolf
10.12.2016
11:37:37
это server.py

<!DOCTYPE HTML> <html> <head> <meta charset="utf-8"> <title>data processing forms</title> </head> <body> <form action="/cgi-bin/form.py"> <input type="text" name="login"><br /> <input type="password" name="password"><br /> <input type="submit" value="click on me"><br /> </form> </body> </html>

это form.html

#!/usr/bin.env python3 import cgi form = cgi.FieldStorage() login = form.getfirst("login", "not defined") password = form.getfirst('password', "not defined") print("Content-type: text/html\n") print('''<!DOCTYPE HTML> <html> <head> <meta charset="utf-8"> <title>data processing forms</title> </head> <body> ''') print("<h2>data processing forms!</h2>") print("<p>login : {}</p>".format(text1)) print("<p>password: {}</p>".format(text2)) print('''</body> </html>''')

а это form.py в папку cgi-bin

Denis
10.12.2016
11:39:38
Ну зачем cgi

Google
Denis
10.12.2016
11:39:52
Пхпшник штоле?

darkwoolf
10.12.2016
11:40:01
когда ввожу пароль в form.html и нажимаю на submit то предлагает скачать файл

arisu
10.12.2016
11:40:15
Ну

А где контент-тайп заголовок

А

Есть

darkwoolf
10.12.2016
11:40:35
Уже давно нет, просто пытаюсь освоить пайтон и так написано в гайде

arisu
10.12.2016
11:40:37
Вижу

Admin
ERROR: S client not available

darkwoolf
10.12.2016
11:40:38
одном

Ну зачем cgi
А это что плохо?

Denis
10.12.2016
11:41:24
Ну это немного очень устаревший стандарт

Для питона есть wsgi

darkwoolf
10.12.2016
11:42:13
Я возьму на заметку, потом погуглю

пока что нужно хотя бы так запустить и понять в чём ошибка

Denis
10.12.2016
11:42:36
Пиши на django лучше

darkwoolf
10.12.2016
11:42:49
до это еще нужно дойти

это же фреимворк

Denis
10.12.2016
11:43:17
Ну и что

Zart
10.12.2016
11:43:26
А это что плохо?
это пиздец как отвратительно

Google
darkwoolf
10.12.2016
11:44:00
чтобы писать на фреимворках, нужно хоть немного без него разобраться

Zart
10.12.2016
11:44:13
чистый цги имеет невероятное количество оверхеда, от чего на практике медленный как звиздец

ну пиши на всги без фреймворков, какие вопросы

python3 -m http.server —cgi
python3 -m wsgiref.simple_server

darkwoolf
10.12.2016
11:46:47
ну в form.py тоже я думаю нужно что-то поменять тогда

Ира br0wnale Куркина
10.12.2016
11:47:21
привет, чят

нужен совет, как быстро понять классы и ООП в питоне

arisu
10.12.2016
11:48:00
Как и везде

Сам не научишься - никто не научит

Ира br0wnale Куркина
10.12.2016
11:48:26
может есть где-то туториал хороший для тупеньких?

darkwoolf
10.12.2016
11:48:33
А ты знаешь ООП в других языках?

Ира br0wnale Куркина
10.12.2016
11:48:53
я прошла курс на курсере, было очень познавательно. но там нет ооп

неа

darkwoolf
10.12.2016
11:49:39
Ну я думаю сначало нужно понять ООП не именно в языке,а как оно действует в реальном мире

Zart
10.12.2016
11:49:53
туториалы по ооп дают основы синтаксиса и терминологии и полностью оставляют за бортом то, нафига это всё надо и как им пользоваться в реальной жизни

darkwoolf
10.12.2016
11:51:14
просто попробуй погуглить 3 основные принципа ООП и про SOLID тоже погугли

и постарайся понаводить примеры в реальной жизни

ну про классы и объекты тоже

Ира br0wnale Куркина
10.12.2016
11:53:29
спасибо)

arisu
10.12.2016
11:56:21
Ну а потом паттерны

Страница 903 из 1885

Эта группа больше не существует Эта группа больше не существует