Ответы пользователя по тегу Flask
  • Flask API и Чат. Как реализовать, куда копать?

    leahch
    @leahch
    3D специалист. Dолго, Dорого, Dерьмово.
    Чтобы сервер выдавал json, а не рендерил темплейты, достаточно просто возвращать через flask jsonify()

    Вот например у меня так
    from flask import jsonify
    
    # Begin AJAX requests
    @cart.route("/api/total")
    def total():
        count = 0
        if "cart" in session:
            cart = session.get("cart")
            l = [int(i) for i in redis.hvals(getCartKey(cart))]
            count = sum(l)
            logger.debug('cart %s : %d', cart, count)
        data = calculateItems()
        data.pop("products")
        return jsonify(dict(count=count, **data))


    Ну и описание jsonify из кода flask.
    """Creates a :class:`~flask.Response` with the JSON representation of
    the given arguments with an `application/json` mimetype. The arguments
    to this function are the same as to the :class:`dict` constructor.

    Example usage::

    from flask import jsonify

    @app.route('/_get_current_user')
    def get_current_user():
    return jsonify(username=g.user.username,
    email=g.user.email,
    id=g.user.id)

    This will send a JSON response like this to the browser::

    {
    "username": "admin",
    "email": "admin@localhost",
    "id": 42
    }

    For security reasons only objects are supported toplevel. For more
    information about this, have a look at :ref:`json-security`.

    This function's response will be pretty printed if it was not requested
    with ``X-Requested-With: XMLHttpRequest`` to simplify debugging unless
    the ``JSONIFY_PRETTYPRINT_REGULAR`` config parameter is set to false.

    .. versionadded:: 0.2
    """


    Что касается сообщений и их ожидания на стороне сервера, есть техника, называется long pooling, или использовать websocket (но к нему все тоже самое относится!"), и для реализации необходимо или запускать flask в режиме тредов app.run(threading=True), или использовать WSGI-враппер на основе gevent.
    Как пример - https://bitbucket.org/jeunice/flask-ws-example/src...
    и
    https://github.com/sigilioso/long_polling_example
    Ответ написан
    23 комментария
  • Питон приложение на Windows и Ubuntu как организовать?

    leahch
    @leahch
    3D специалист. Dолго, Dорого, Dерьмово.
    По поводу файлов, сделайте файл settings.cfg, в него уберите хотя бы путь до вашего приложения.
    import platform
    
    if platform.system() == 'Linux':
       MYAPPPATH = "/var/www/FlaskApp/FlaskApp"
    else: 
       MYAPPPATH = "C:/FlaskApp/FlaskApp"

    Ну или прямо в коде запуска приложения
    import platform
    if platform.system() == 'Linux':
      app.config["MYAPPPATH"] = "/var/www/FlaskApp/FlaskApp"
    else: 
       app.config["MYAPPPATH"] = "C:/FlaskApp/FlaskApp"


    Далее в коде
    file = open(app.config["MYAPPPATH"]+'/myfile', 'w')


    По второму вопросу, во flask есть встроенные сервер, но он для отладки и разработки,. В боевом режиме настоятельно рекомендуется запускать из-под нормального сервера под WSGI. Здесь как раз и нужно будет написать дополнительно wsgi.py (в зависимости от типа запускалки) на десяток строк - в сети примеров вагон.
    Ответ написан
  • Как деплоить Flask на vps ubuntu или debian?

    leahch
    @leahch
    3D специалист. Dолго, Dорого, Dерьмово.
    1 комментарий