Questions tagged «flask»

Flask是用于使用Python开发Web应用程序的轻量级框架。

6
如何组织一个相对较大的Flask应用程序?
我正在构建我的第一个Flask应用程序,但找不到一种干净利落的Python方式来组织应用程序。我不想像他们的示例一样将所有内容都放在一个.py文件中。我想将我的应用程序的每个部分放在一个单独的模块中。什么是组织事物的好方法?
74 python  flask 

4
在Flask中,什么是request.args以及如何使用?
我是Flask的新手。我不明白怎么request.args用。我在某处读到它用于返回查询字符串的值[如果我错了,请纠正我]。以及需要多少个参数request.args.get()。我知道当我必须存储提交的表单数据时,我可以使用 fname = request.form.get("firstname") 在此,仅传递一个参数。 考虑一下此代码。分页也已在此代码中完成。 @app.route("/") def home(): cnx = db_connect() cur = cnx.cursor() output = [] page = request.args.get('page', 1) try: page = int(page) skip = (page-1)*4 except: abort(404) stmt_select = "select * from posts limit %s, 4;" values=[skip] cur.execute(stmt_select,values) x=cur.fetchall() for row in reversed(x): data = { …



10
如何围绕现有数据库构建Flask应用程序?
我已经有一个现有的数据库,其中包含很多表和很多数据MySQL。我打算创建一个Flask应用程序,并与它一起使用sqlalchemy。现在,我在irc上查询了一下,然后在Google上环顾了一下,并尝试了以下想法: 首先,我使用sqlacodegen从我的生成模型DB。但是后来我对此有些困惑,看上去有些困惑。我发现了这个。 这看起来是一个优雅的解决方案。 因此,第二,我models.py根据那里的解决方案重写了自己的内容,现在我更加困惑了。我正在寻找与现有数据库一起构建此Flask应用程序的最佳方法。 我查看了flask文档,但对于具有现有数据库的项目并没有真正获得任何帮助。从头开始创建东西,创建数据库以及所有东西都有很多好东西。但是我真的很困惑。 请注意,这是我的第一天工作Flask经验,但我有的经验Django,因此基本概念并非障碍。在为该用例选择最佳方法时,我需要一些指导。详细的解释将不胜感激。详细地说,我绝对不希望有人编写所有代码并为此而spoon之以鼻,但这足以使我起步,即将该数据库无缝集成到flaskvia中sqlalchemy。注意我的数据库在MySQL。

1
测试需要Flask应用或请求上下文的代码
我正在working outside of request context试图访问时,session在测试。测试需要测试的内容时,如何设置上下文? import unittest from flask import Flask, session app = Flask(__name__) @app.route('/') def hello_world(): t = Test() hello = t.hello() return hello class Test: def hello(self): session['h'] = 'hello' return session['h'] class MyUnitTest(unittest.TestCase): def test_unit(self): t = tests.Test() t.hello()
69 python  flask 

3
在不参考应用程序的情况下在蓝图模型中使用Flask-SQLAlchemy
已关闭。这个问题是基于观点的。它当前不接受答案。 想改善这个问题吗?更新问题,以便通过编辑此帖子以事实和引用的形式回答。 2年前关闭。 改善这个问题 我正在尝试使用蓝图在Flask中创建一个“模块化应用程序”。 但是,在创建模型时,我遇到了必须引用该应用程序才能获得dbFlask-SQLAlchemy提供的-object的问题。我希望能够在多个应用程序中使用一些蓝图(类似于Django应用程序的使用方式),所以这不是一个好的解决方案。* 可以进行切换,让蓝图创建db实例,然后由应用程序将其与蓝图的其余部分一起导入。但是随后,任何其他希望创建模型的蓝图都需要从该蓝图而不是应用程序中导入。 因此,我的问题是: 有没有一种方法可以让蓝图定义模型,而又不知道它们以后将使用的应用程序-并且有多个蓝图组合在一起?通过这种方式,我的意思是必须从您的蓝图导入应用程序模块/软件包。 我从一开始就错了吗?蓝图是否不是要独立于应用程序并可以重新分发(例如Django应用程序)? 如果没有,那么您应该使用什么模式来创建类似的东西?烧瓶扩展?您是否应该简单地做到这一点-也许集中所有模型/方案以及Ruby on Rails? 编辑:我现在一直在考虑这个问题,这可能与SQLAlchemy而不是Flask有关,因为declarative_base()在声明模型时必须具有。而这得从什么地方来的,反正! 也许最好的解决方案是像Ruby on Rails一样,将项目的模式定义在一个位置并进行分散。声明性SQLAlchemy类定义实际上更像是schema.rb,而不是Django的models.py。我想这也将使使用迁移(从Alembic或sqlalchemy-migrate)更容易。 我被要求提供一个示例,所以让我们做一些简单的事情:假设我有一个描述“ flatpages”的蓝图,“ flatpages”是存储在数据库中的简单,“静态”内容。它使用仅带有短名称(用于URL),标题和正文的表。这是simple_pages/__init__.py: from flask import Blueprint, render_template from .models import Page flat_pages = Blueprint('flat_pages', __name__, template_folder='templates') @flat_pages.route('/<page>') def show(page): page_object = Page.query.filter_by(name=page).first() return render_template('pages/{}.html'.format(page), page=page_object) 然后,最好让这个蓝图定义自己的模型(在中simple_page/models.py): # TODO Somehow get ahold of …

7
无法在virtualenv中“将matplotlib.pyplot导入为plt”
我在虚拟环境中使用烧瓶。我可以通过pip安装matplotlib,并且可以import matplotlib在Python会话中进行安装。但是,当我将其导入为 matplotlib.pyplot as plt 我收到以下错误: >>> import matplotlib.pyplot as plt Traceback (most recent call last): File "<stdin>", line 1, in <module> File "//anaconda/envs/myenv/lib/python2.7/site-packages/matplotlib/pyplot.py", line 109, in <module> _backend_mod, new_figure_manager, draw_if_interactive, _show = pylab_setup() File "//anaconda/envs/myenv/lib/python2.7/site-packages/matplotlib/backends/__init__.py", line 32, in pylab_setup globals(),locals(),[backend_name],0) File "//anaconda/envs/myenv/lib/python2.7/site-packages/matplotlib/backends/backend_macosx.py", line 24, in <module> from matplotlib.backends import …

1
将Flask应用程序部署到Heroku时出现奇怪的“ is_xhr”错误
我有一个烧瓶应用程序,已部署到Heroku,其中一条路线如下 def get_kws(): seed_kw = request.json['firstParam'] audience_max = request.json['secondParam'] interest_mining_service = InterestMiningService(seed_kw, audience_max) query_result = interest_mining_service.query_keyword().tolist() if seed_kw in query_result: print ("yes") return jsonify( { 'keyword_data' : interest_mining_service.find_kws().to_json(orient='records'), 'query_results': query_result } ) 当我在本地测试此端点时,向该端点发送POST和GET请求时没有问题。但是,当我部署到Heroku时,出现以下错误: File "/app/server/controller.py", line 24, in get_kws 2020-02-08T22:31:05.893850+00:00 app[web.1]: 'query_results': query_result 2020-02-08T22:31:05.893850+00:00 app[web.1]: File "/app/.heroku/python/lib/python3.6/site-packages/flask/json.py", line 298, in …
29 heroku  flask 

2
全新安装后无法运行apache气流,python导入错误
在使用进行全新安装后pip install apache-airflow,任何运行气流的尝试都会以python导入错误结束: Traceback (most recent call last): File "/Users/\*/env/bin/airflow", line 26, in <module> from airflow.bin.cli import CLIFactory File "/Users/\*/env/lib/python3.7/site-packages/airflow/bin/cli.py", line 70, in <module> from airflow.www.app import (cached_app, create_app) File "/Users/\*/env/lib/python3.7/site-packages/airflow/www/app.py", line 26, in <module> from flask_wtf.csrf import CSRFProtect File "/Users/\*/env/lib/python3.7/site-packages/flask_wtf/__init__.py", line 17, in <module> from .recaptcha import \* File …

3
WTForms:安装“ email_validator”以获得电子邮件验证支持
运行以下代码进行表单验证时获取异常。 File "/Users/homeduvvuri/Documents/Learning/PartyGoUdemy/PartGo/user/forms.py", line 11, in BaseUserForm email = EmailField('Email', [validators.DataRequired(), validators.Email()]) File "/Users/homeduvvuri/Documents/Learning/PartyGoUdemy/PartGo/partgo-env/lib/python3.7/site-packages/wtforms/validators.py", line 332, in __init__ raise Exception("Install 'email_validator' for email validation support.") Exception: Install 'email_validator' for email validation support. 在codeanywhere VM上完美运行。不在本地计算机上。 from flask_wtf import FlaskForm from flask_wtf.file import FileField, FileAllowed from wtforms import Form, StringField, PasswordField, validators, …
15 python  flask  wtforms 

5
如何解决Alpine docker容器内Flask应用程序的Gunicorn执行程序上引发的``OSError:libc not found''问题
我正在基于Miguel Grinberg的大型教程的Microblog应用程序开发Flask应用程序。代码位于此处:https : //github.com/dnilasor/quickgig。我有一个带有链接的MySQL 5.7容器的可运行docker实现。今天,我使用Flask-Admin模块添加了一个Admin View功能。它通过“ flask run”在Flask服务器上本地服务(OSX)上精美地工作,但是当我构建并运行新的docker镜像(基于python:3.8-alpine)时,它在启动时崩溃并出现OSError: libc not found错误,其代码似乎指示未知的图书馆 在我看来,Gunicorn无法在我添加内容后投放该应用程序。我和我的同学很沮丧! 我最初使用python:3.6-alpine基本图像得到了错误,因此尝试使用3.7和3.8无济于事。我还注意到,一旦在requirements.txt中指定了版本号,便会多余地添加PyMySQL。并再次在dockerfile中明确显示,没有任何规范。删除了requirements.txt条目。还尝试增加Flask-Admin版本号。上和下。还尝试清理数据库迁移,因为我已经看到多个迁移文件导致容器无法启动(诚然,这是在使用SQLite时)。现在只有一个迁移文件,并且基于堆栈跟踪,看起来flask db upgrade工作正常。 我尚未尝试的一件事是不同的基本映像(最少的基本映像?),可以尽快尝试并更新它。但是这个问题对我来说是如此神秘,以至于我认为是时候问其他人是否看过它了:) 我确实发现了这个似乎可能相关的套接字错误,但是应该在python 3.8中已完全修复。 此外FYI我跟着一些建议这里的圆形进口和进口我的管理控制器功能里面create_app。 Dockerfile: FROM python:3.8-alpine RUN adduser -D quickgig WORKDIR /home/quickgig COPY requirements.txt requirements.txt RUN python -m venv venv RUN venv/bin/pip install -r requirements.txt RUN venv/bin/pip install gunicorn pymysql COPY app app COPY …


2
Flask应用程序不会启动“ ImportError:无法从'werkzeug'导入名称'cached_property''
我已经在Flask应用程序上工作了几个星期。我今天完成了它,然后去部署了它……现在它不会启动。 我没有添加或删除任何代码,因此假设部署过程中发生了某些变化? 无论如何,这是终端中显示的完整错误: Traceback (most recent call last): File "C:\Users\Kev\Documents\Projects\Docket\manage.py", line 5, in <module> from app import create_app, db File "C:\Users\Kev\Documents\Projects\Docket\app\__init__.py", line 21, in <module> from app.api import api, blueprint, limiter File "C:\Users\Kev\Documents\Projects\Docket\app\api\__init__.py", line 2, in <module> from flask_restplus import Api File "C:\Users\Kev\.virtualenvs\Docket-LasDxOWU\lib\site-packages\flask_restplus\__init_ _.py", line 4, in <module> from . …
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.