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

Страница 889 из 1885
Alexey
07.12.2016
11:43:59
сейчас в поиске ошибки

Значит здесь я верно указал?

Igor
07.12.2016
11:44:47
какие ошибки, давай подробнее )

разве request.User с большой буквы? о_О

Google
Alexey
07.12.2016
11:46:47
не грузит по урлу

Igor
07.12.2016
11:47:12
так а ошибки есть? трейсбек там, эксепшн от DRFа?

Vadim
07.12.2016
11:47:41
Во-первых, если мы говорим о REST, здесь я бы рекомендовал придерживаться классов viewsets.

А ты урду добавил?

Igor
07.12.2016
11:48:08
ты забыл запятую

у тебя строки склеились

похоже

вон в 2 пункте два раза повторяется

или не забыл, а просто лишнее воткнул

Alexey
07.12.2016
11:49:58
сейчас гляну

Maksim
07.12.2016
11:50:00
ты вот про что-то такое? string = 'abccc' for i, ch in enumerate(string[:-1], 1): if ch == string[i]: print(True)
Не, мне надо сделать надо "сжатие", чтоб если символ повторяется несколько раз, выводило кол-во раз сколько он здесь упоминается и сам символ

Maksim
07.12.2016
11:51:04
Не, я на степике курс прохожу

Google
Maksim
07.12.2016
11:51:30
Для себя хочу разобраться какбез подобного можно сделать

Vadim
07.12.2016
11:51:32
# views.py class LessonViewSet(viewsets.ReadOnlyModelViewSet): queryset = Lesson.objects.none() serializer_class = LessonSerializer # urls.py router = Router() router.register(r'lessons', views.LessonViewSet, base_name='lesson')

Значит лучше забыть про декоратор?
Почему же? ReST – не панацея. Просто то, что ты делаешь, прямо противоречит логике ReST.

Alexey
07.12.2016
11:52:21
разве request.User с большой буквы? о_О
user в этом случае используется с малой буквы?

b0g3r
07.12.2016
11:52:56
Для себя хочу разобраться какбез подобного можно сделать
завести счетчик для каждой встреченной буквы

Igor
07.12.2016
11:52:57
канеш, епт

b0g3r
07.12.2016
11:53:14
Vadim
07.12.2016
11:53:31
user в этом случае используется с малой буквы?
Классы в питоне принято писать с Заглавной буквы, объекты – с мелкой

Igor
07.12.2016
11:53:34
есть еще collections.Counter или как там его

b0g3r
07.12.2016
11:53:43
вообще при решении задач на степике стоит внимательно посмотреть предыдущие ролики

Igor
07.12.2016
11:54:08
сорри!

Vadim
07.12.2016
11:54:37
Если мы говорим про „подсчитать кол-во вхождений каждой буквы“, то хоть .count("a") используй )) Вам же можно… Но в боевом проекте я бы за это оторвал руки по самые помидоры ?

Roman
07.12.2016
11:56:20
Может кто-нибудь объяснит как всё-таки правильно авторизацию пользователя написать с обращением к бд для проверки, то уже горит жопа

Vadim
07.12.2016
11:56:44
Про ReST: https://en.wikipedia.org/wiki/Representational_state_transfer#Relationship_between_URL_and_HTTP_methods

Roman
07.12.2016
11:57:34
Flask_login

Google
Vadim
07.12.2016
11:58:59
Flask_login
Удачи в „я выбрал лёгкий и быстрый фреймворк, не то, что эта ваша жирная и медленная джанга“ :-P

Roman
07.12.2016
11:59:15
что ты подразумеваешь под "правильно"?
какие модельки должны быть и что в них должно быть

и как с формы проверить логин и пароль

from peewee import * from config.main import pdb ROLE_USER = 0 ROLE_ADMIN = 1 class User(Model): id = IntegerField(primary_key=True, unique=True) username = CharField(40, unique=True, index=True) password = CharField(40) role = SmallIntegerField(default=ROLE_USER) class Meta: database = pdb def is_authenticated(self): return True def is_active(self): return True def is_anonymous(self): return False def get_id(self): return int(self.id) def __repr__(self): return '<User %r>' % self.nickname

Вот моделька для юзера

есть еще форма LoginForm

Vadim
07.12.2016
12:00:13
Так а подсчитаем во всей строке,а конкретно до этого места
Выше уже предлагали решение. В цикле пробежаться по строке и для каждого элемента суммировать количество вхождений.

Roman
07.12.2016
12:00:16
Только вот нужна она или нет?

Igor
07.12.2016
12:00:22
ну ты как думаешь, че должно быть у пользователя? 1) id. primary key. у обычных бд типа sqlite, mysql, postgres 2) email или username. или и то, и то 3) password. захешированный. 4) ??? 5) ну вон role, ок

Igor
07.12.2016
12:00:43
Только вот нужна она или нет?
что значит "нужна она или нет"? ты используешь peewee? как ты планируешь хранить пользователей в БД и не использовать модели?

Igor
07.12.2016
12:01:12
Пароль на 40 символов? А хэш?…
так в 40 символов как раз хэш может поместиться, правда может без соли и не sha/bcrypt но тот же md5 в хуевых образовательных целях ниче не мешает

Vadim
07.12.2016
12:01:59
так в 40 символов как раз хэш может поместиться, правда может без соли и не sha/bcrypt но тот же md5 в хуевых образовательных целях ниче не мешает
В образовательных целях можно пароль „хэшировать“ обрезая от него всё, кроме первого символа, да. Ну, то есть, я за нормальные подходы.

Igor
07.12.2016
12:02:40
В образовательных целях можно пароль „хэшировать“ обрезая от него всё, кроме первого символа, да. Ну, то есть, я за нормальные подходы.
ну чё ты доебался! ты посмотри какие у него затыки, а ты хочешь, чтоб пароли надежно ебались

Roman
07.12.2016
12:02:53
во-во

давай на потом оставим это

Google
Igor
07.12.2016
12:03:28
ну не затыки, нежелание мб

Roman
07.12.2016
12:04:00
<input type="password" placeholder="Password" name="password" value="{{ request.form.password }}">

Igor
07.12.2016
12:04:02
во-первых, какова хуя ты возвращаешь в методе get_id инт, если в документации прямым текстом просят юникод (строку)

Roman
07.12.2016
12:04:08
Вот это правильный input?

Igor
07.12.2016
12:04:40
зачем заполнять value для поля password?

Igor
07.12.2016
12:05:04
пичарм подсвечивает ее как анрезолвт
python3? тогда str(self.id), а не unicode(self.id). тебе об этом несколько раз говорили вроде :(

Admin
ERROR: S client not available

Vadim
07.12.2016
12:05:09
Он же спросил, как правильно делать авторизацию? Авторизацию в вебе правильно делать так: взять логин и пароль, найти пользователя с таким логином, зашифровать пароль „как в первый раз“ и сравнить две строки. Одинаковые – на тебе ID сессии в куку и проходи. Разные – нах отсюда.

Omni
07.12.2016
12:05:16
Народ, такой вопрос. Можно получить инстанс модельки из её менеджера? Допустим, есть модель Book и у неё objects = BookManager(). В менеджере есть некий метод foo. Где-то я получаю инстанс book = Book.objects.get(book_name="Kniga 1") , а потом запускаю book.objects.foo(params) . Можно ли как-то получить этот конкретный инстанс book в функции foo? Не считая непосредственной передачи book как параметра, т.к. я этого пытаюсь избежать.

Vadim
07.12.2016
12:05:30
Посоны, как из ютуба выкачать звуковой поток? Есть библиотека какая-нибудь для ютуба?

Igor
07.12.2016
12:05:46
Посоны, как из ютуба выкачать звуковой поток? Есть библиотека какая-нибудь для ютуба?
youtubedl есть вроде, как раз на питоне, посмотри в его сторону

Evgen
07.12.2016
12:05:50
Как указать явно, какой тип данных должна принимать функция?

Vadim
07.12.2016
12:06:01
Спасибо

Igor
07.12.2016
12:06:04
но id же число
а пацаны-то и не знали! ну давай пойдем в исходники flask-login разбираться, зачем они хотят именно строку в результате этой функции

Google
Roman
07.12.2016
12:07:37
Дальше from wtforms import Form, StringField, PasswordField, validators class LoginForm(Form): username = StringField('Username', [validators.DataRequired()]) password = PasswordField('Password', [validators.DataRequired()]) def __init__(self, username, password): self.username = username self.password = password Нормально я тут нахуекодил?

Igor
07.12.2016
12:08:03
ну вроде похоже на правду

а ты flask-wtf юзаешь? там вроде какие-то удобные штуки были для работы с wtforms

ну да не суть

Roman
07.12.2016
12:09:02
бля

точняк

flask_wtf

Johnnie
07.12.2016
12:09:27
а ты flask-wtf юзаешь? там вроде какие-то удобные штуки были для работы с wtforms
да, были какие-то в одну строку, название не помню только

Vadim
07.12.2016
12:09:29
Всмысле? Работает же
Менеджер призван работать с коллекцией/моделью/набором обектов, а не с одной сущностью.

Omni
07.12.2016
12:10:14
Vadim
07.12.2016
12:10:55
А. Может, тогда foo запихнуть в сам класс модели Book
foo – метод объекта? Он выполняет какие-то операции над одним экземпляром класса? Тогда, конечно, да.

Roman
07.12.2016
12:10:56
ща погодите, перепишу forms

Johnnie
07.12.2016
12:11:01
а, нет, вру, не в одну.

Evgen
07.12.2016
12:11:05
Как указать явно, какой тип данных должна принимать функция?

Johnnie
07.12.2016
12:11:05
<form method="POST" action="/"> {{ form.csrf_token }} {{ form.name.label }} {{ form.name(size=20) }} <input type="submit" value="Go"> </form>

типа такого

Vadim
07.12.2016
12:11:48
Как указать явно, какой тип данных должна принимать функция?
Что значит „явно указать тип данных“ для языка с нестрогой типизацией? Что ты ожидаешь увидеть там?

Evgen
07.12.2016
12:12:23
Ну типа как некоторые встроенные(вроде) ф-ции, принимают значения только определённого типа

Roman
07.12.2016
12:12:43
from flask_wtf import FlaskForm from wtforms import StringField, PasswordField from wtforms.validators import DataRequired class LoginForm(FlaskForm): username = StringField('Username', validators=[DataRequired()]) password = PasswordField('Password', validators=[DataRequired()]) def __init__(self, username, password): self.username = username self.password = password

Переписал

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

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