Ответы пользователя по тегу Flask
  • Как использовать синтаксис с {{ some_variable }} в js?

    ramzis
    @ramzis
    FullStackOverflow
    Как решение. Возможно и не сработает.

    Создать tableviewer.html, добавить туда js код tableviewer.js

    {% extends "index.html" %}
    {% block tableviewer_js %}
    <script type="text/javascript">
    d = {{ companies | tojson | safe }};
    ...
    </script>
    {% endblock %}


    Базовый index.html

    <body>
     {% block tableviewer_js %}{% endblock %}
    </body>
    Ответ написан
    Комментировать
  • Почему не подтягивает данные в форму выбора Flask?

    ramzis
    @ramzis
    FullStackOverflow
    Почему не подтягивает данные в форму

    Потому что, `db.session.query(Clients).all()` вызываеться один раз, после определения класса.

    Решение.
    ...
    form=AddOrder()
    form.client_id.choices = [(client.id, (client.first_name, client.last_name, client.phone_number)) for client in (db.session.query(Clients).all())]
    ...
    Ответ написан
    1 комментарий
  • Как реализовать удаление пользователя с Flask-Login и SQLAlchemy?

    ramzis
    @ramzis
    FullStackOverflow
    <thead>
        <tr>
            <th>ID</th>
            ...
        </tr>
    </thead>
    <tbody>
        {% for user in users %}
        <tr>
            <td>{{ user.id }}</td>
            ...
            <td><a href="/user/delete/{{ user.id }}">Удалить</a></td>
        </tr>
        {% endfor %}
    </tbody>


    @app.route('/user/delete/<int:id>')
    def delete_user(id):
    	# # Здесь удаляете пользователя по id.
    	# User.query.filter_by(id=id).delete()
    	# db.session.commit()
    	...
    Ответ написан
    5 комментариев
  • Как вызвать асинхронную функцию внутри @app.route?

    ramzis
    @ramzis
    FullStackOverflow
    from flask import Flask
    import aiohttp
    import asyncio
    
    app = Flask(__name__)
    
    async def get_url(session, url):
        async with session.get(url) as resp:
            status = resp.status
            html = await resp.text()
            title = html[html.find('<title>')+7:html.find('</title>')]
        return {'status': status, 'title': title}
    
    async def start():
        result = ''
        async with aiohttp.ClientSession() as session:
            tasks = []
            for i in range(1063500, 1063624):
                tasks.append(asyncio.create_task(get_url(session, f'https://qna.habr.com/q/{i}')))
            resp = await asyncio.gather(*tasks)
        for r in resp:
            if r["status"] == 200:
                result += f'<p>Статус: {r["status"]} title: {r["title"]}</p>'
        return result
    
    @app.route('/')
    async def index():
        result = await start()
        return result
    
    if __name__ == '__main__':
        app.run()


    Результат

    Статус: 200 title: Не работает многопоточность? — Хабр Q&A
    
    Статус: 200 title: Как связать данные из одной таблицы SQL? — Хабр Q&A
    
    Статус: 200 title: Не получается сделать так, чтобы когда я писал !role @nick выдавалась роль. Чтобы я не писал, она выдаётся мне. И да, я чайник :)? — Хабр Q&A
    
    Статус: 200 title: Как мне вернуть текст, отправленный боту (Telebot)? — Хабр Q&A
    
    Статус: 200 title: Корректно ли использую lazy load? — Хабр Q&A
    
    Статус: 200 title: Как сделать рабочими ссылки в селекте? — Хабр Q&A
    
    Статус: 200 title: Как авторизоваться на сервисе проверки чеков? — Хабр Q&A
    
    Статус: 200 title: Как воспроизвести видео YouTube при клике по стороннему элементу в 2021? — Хабр Q&A
    
    Статус: 200 title: Почему Recoil для React не обновляет стейт? — Хабр Q&A
    
    Статус: 200 title: Как сделать коллайдер для торуса(бублика) в юнити? — Хабр Q&A
    
    Статус: 200 title: Как я могу встроить HTML редактор на сайт? — Хабр Q&A
    
    Статус: 200 title: Как вывести переменную в шаблон tpl twig? — Хабр Q&A
    
    Статус: 200 title: Нормально ли работает Android Studio и эмулятор на AMD Ryzen 5 3600? — Хабр Q&A
    
    Статус: 200 title: Распознавание цветов, как распознать разноцветные буквы на разноцветном фоне в Python? — Хабр Q&A
    
    Статус: 200 title: Парсинг или скрапинг? — Хабр Q&A
    
    Статус: 200 title: Как отслеживать запросы? — Хабр Q&A

    Ответ написан
  • Как правильно разделить на модули Python файл?

    ramzis
    @ramzis
    FullStackOverflow
    Структура:
    ├── main.py
    └── my_project
        ├── __init__.py
        ├── models.py
        ├── views.py


    main.py
    from my_project import app
    app.run()


    __init__.py
    from flask import Flask, redirect, render_template, request, url_for, redirect
    from flask_sqlalchemy import SQLAlchemy
    
    app = Flask(__name__)
    
    app.config['SQLALCHEMY_DATABASE_URI'] = DATABASE
    app.config['SQLALCHEMY_TRACK_MODIFICATIONS'] = False
    app.config['SQLALCHEMY_COMMIT_ON_TEARDOWN'] = True
    
    db = SQLAlchemy(app)
    
    import project.views


    models.py
    from my_project import db
    
    class Users(db.Model):
        Id = db.Column(db.Integer, primary_key=True)
        Login = db.Column(db.String(255), nullable=False)
    
    class Checks(db.Model):
        Id = db.Column(db.Integer, primary_key=True)
        PasswordHash = db.Column(db.String(255), nullable=False)


    views.py
    from my_project import app
    from my_project .models import Users, Checks
    
    @app.route('/')
    def index():
        return 'hello habr'
    Ответ написан
    1 комментарий
  • Как добавить переменную доступную на всех страницах сайта?

    ramzis
    @ramzis
    FullStackOverflow
    Процессоры контекста

    @app.context_processor
    def inject_user():
        return dict(user='Это я')


    HTML
    <p>{{ user }}</p>
    Ответ написан
    Комментировать
  • Отдача ответа через flask?

    ramzis
    @ramzis
    FullStackOverflow
    http://localhost:5000/multiplicators/1/hello/3
    @app.route('/multiplicators/<names>/<tiker>/<country>', methods = ['GET'])
    def get_multiplicator(names, tiker, country):
        return jsonify(names, tiker, country)
        #return jsonify(parse_multiplicators(tiker,country,names))

    [
    "1",
    "hello",
    "3"
    ]
    Ответ написан
  • Flask. Как сделать поиск на форме?

    ramzis
    @ramzis
    FullStackOverflow
    class SpeciesForm(FlaskForm):
        find = StringField('название', validators=[DataRequired(message='Обязательное поле')])
        findButton = SubmitField('найти')
    
    
    @app.route('/species', methods=['GET', 'POST'])
    def species():
        form = SpeciesForm()
        if form.validate_on_submit():
            species_search = Species.query.filter(Species.name.like(f'%{form.find.data}%')).all()
            return render_template('species.html', species_search=species_search, form=form)
        return render_template('species.html', form=form)


    {% for species in species_search %}
        <p>{{ species.name }} -> {{ species.genus.name }} -> {{ species.family.name }}</p> 
    {% endfor %}
        <div id="content">
            <form action="" method="POST">
            
                {{ form.hidden_tag() }}
            
            <div class="items">
            
                <div class="item">
                    <i>Поиск</i>
                    <br><br>
                    {{ form.find.label }}  {{ form.find() }}
                    <br><br>
                    {{ form.findButton }}
                </div>
            
            </div>
            </form>
            </div>
    Ответ написан
  • Как задеплоить FLASK на heroku, используя gunicorn?

    ramzis
    @ramzis
    FullStackOverflow
    Проблема решена, прошу закрыть вопрос.
    Структура проекта неправильная.
    Ответ написан
    Комментировать