Flask: Личные сообщения - Python
Формулировка задачи:
Здравствуйте.
Нужна помощь. Я делаю своеобразную соц.сеть на Flask и столкнулся с проблемой, что пользователи не могут увидеть свои сообщения. Я думаю что проблема стоит с filter() и не правильное его написание. Я во Flask не давно начал разбираться и особо много не знаю, кароче нуб.
Как видно я завожу сообщение в базу. А потом в переменную "message" я передаю эти сообщения из базы, но сообщения я пытаюсь взять именно конкретных пользователей, сообщения пользователя из адресной строки и текущего пользователя, тем самым что и получается личные сообщения. Но у меня попросту сообщения не отображаются, ошибок нет, но в базе сообщения есть. Если надо больше кода могу отослать. Пожалуйста пишете по "Русски", я новичок и большинство терминов не понимаю.
Заранее Спасибо.
Листинг программы
- @app.route('/message/<nickname>', methods=['GET', 'POST'])
- @login_required
- def message(nickname=None):
- if nickname is None:
- return redirect(url_for('message', nickname=current_user.name))
- if request.method == "POST":
- new_message = Messages(message=request.form.get("messages"),
- mess=current_user)
- g.db.add(new_message)
- g.db.commit()
- messages = g.db.query(Messages.message, Users.name).filter(
- and_(Users.name == current_user.name, Users.name == nickname)).join(Users).order_by(Messages.time).all()
- return render_template('message.html',
- message=messages)
Решение задачи: «Flask: Личные сообщения»
textual
Листинг программы
- @app.route('/message/<nickname>', methods=['GET', 'POST'])
- @login_required
- def message(nickname=None):
- if nickname is None:
- return redirect(url_for('message', nickname=current_user.name))
- user = g.db.query(Users).filter_by(name=nickname).first()
- user_cur = current_user
- if request.method == "POST":
- new_message = Messages(message=request.form.get("messages"),
- user_to=user.id,
- mess=current_user)
- g.db.add(new_message)
- g.db.commit()
- messages = g.db.query(Messages.message, Users.name, Messages.user_id).join(Users).filter(
- or_(and_(Messages.user_id == user_cur.id, Messages.user_to == user.id),
- and_(Messages.user_id == user.id, Messages.user_to == user_cur.id))).order_by(Messages.time).all()
- return render_template('message.html',
- message=messages,
- user=user,
- user_cur=user_cur,
- nickname=nickname)
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д