我有一个包含数据的表。我想在 API 响应中获取带有分页的结果集。
我正在使用GET调用API的方法。这里是
要求:
我的代码:
@api.route('/', methods=["GET"])
@app.route('/page/<int:page>')
class List(Resource):
"""USER data(s)"""
def get(self, page=1):
"""GET Lists"""
all_data = User.query.paginate(page, per_page=2)
result = user_serializer.dump(all_data)
return result
Run Code Online (Sandbox Code Playgroud)
问题:
类型错误:“分页”对象在 Flask 中不可迭代
我正在 python Flask 中创建一条路线,它将作为其余 api 来注册用户。当我尝试在 POST 方法中获取通过邮递员传递的 json 数据时,出现错误TypeError: 'NoneType' object is not subscriptable
我来自邮递员的请求:
http://127.0.0.1:5000
/register 原始输入:{"username":"alok","password":"1234"}
我的路线和功能:
@app.route('/register', methods=['GET', 'POST'])
def signup_user():
data = request.get_json()
return data['username']
Run Code Online (Sandbox Code Playgroud)
据我所知,上述函数应该返回:“ alok ”
但我收到错误:TypeError: 'NoneType' object is not subscriptable
任何帮助将不胜感激
我有一些文件和有关它们的信息在SQL数据库中.对于给定的文件组,它们将共享共同的gallery_id(文本)和不同的upload_time(日期时间).我正在尝试获取所有共享一个公共图库ID的文件列表,然后按upload_time对它们进行排序,但它无法正常工作.这是我使用的语法:
>>> foo = Storedfile.query.filter_by(
gallery_id ='kgLivY').all().order_by(Storedfile.upload_time)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
AttributeError: 'list' object has no attribute 'order_by'
Run Code Online (Sandbox Code Playgroud)
我在这做错了什么?
我正在关注http://code.tutsplus.com/tutorials/intro-to-flask-signing-in-and-out--net-29982教程来开发我自己的应用程序.
我试图创建一个注册表但遇到此错误:
TypeError: 'Required' object is not iterable
Run Code Online (Sandbox Code Playgroud)
我的路线页是
from cafe_klatch import app
from flask import render_template,request,flash
from forms import ContactForm, SignupForm
from models import db
@app.route('/')
@app.route('/index')
def index():
return render_template('index.html')
@app.route('/contact', methods = ['GET','POST'])
def contact():
form1 = ContactForm()
if request.method == 'POST':
if form.validate() == False:
flash('All fields are required.')
return render_template('contact.html',form = form)
else:
return 'Form posted.'
elif request.method == 'GET':
return render_template('contact.html',form = form)
@app.route('/signup', methods =['GET','POST'])
def signup():
form = SignupForm()
if …Run Code Online (Sandbox Code Playgroud) 我正在尝试使用SqlAlchemy在Flask中创建一对一的关系.我按照上一篇文章进行了操作,并创建了以下类:
class Image(db.Model):
__tablename__ = 'image'
image_id = db.Column(db.Integer, primary_key = True)
name = db.Column(db.String(8))
class Blindmap(db.Model):
__tablename__ = 'blindmap'
module_id = db.Column(db.Integer, primary_key = True)
image_id = db.Column(db.Integer, ForeignKey('image.image_id'))
Run Code Online (Sandbox Code Playgroud)
虽然它可以将模型迁移到sqlite3数据库,但是当我尝试创建一个单独的对象通知另一个类的值为image_id时,我有一个错误.例如:
image1 = Image(image_id=1, name='image1.png')
blindmap1 = Blindmap(module_id=1, image_id=1)
Run Code Online (Sandbox Code Playgroud)
而我所遇到的错误就是随之而来的错误.我不太清楚这个完整性错误是什么.我还尝试在创建blindmap1时插入对象本身,但没有成功.
======================================================================
ERROR: test_commit_blindmap (__main__.TestCase)
----------------------------------------------------------------------
Traceback (most recent call last):
File "tests.py", line 183, in test_commit_blindmap
blindmap1.add_label(label1)
File "/home/thiago/Documents/ANU/MEDGg1/MEDG/LAWA/2014/trunk/app/models.py", line 325, in add_label
db.session.commit()
File "/usr/local/lib/python2.7/dist-packages/sqlalchemy/orm/scoping.py", line 150, in do
return getattr(self.registry(), name)(*args, **kwargs)
File "/usr/local/lib/python2.7/dist-packages/sqlalchemy/orm/session.py", line 776, …Run Code Online (Sandbox Code Playgroud) 我正在Flask中编写一个Web应用程序,我正在使用pandas从MySQL数据库中检索数据.以下用于工作,使用我从另一篇文章中读到的内容:
db = SQLAlchemy()
app = Flask(__name__)
app.config.from_object(config['default'])
db.init_app(app)
conn = db.engine.connect().connection
Run Code Online (Sandbox Code Playgroud)
然后在视图函数中(在相同的.py文件中):
@app.route('/report', methods=['GET', 'POST'])
def report():
form = ReportForm()
...
sql = '''SELECT * FROM availability ...'''
df = psql.read_sql(sql, conn)
...
return render_template('report.html', form=form, df=df)
Run Code Online (Sandbox Code Playgroud)
此网页显示基于所选日期间隔的表格(来自表单).我通过x-editable在网页上添加了此表的内联编辑,我看到更改已发布到数据库,但如果我再次提交表单,则表只会在更改之前加载旧数据.我只是在重新打开网页后看到了这些变化,这很奇怪.
在read_sql工作之前移动'conn'行:
sql = '''SELECT * FROM availability ...'''
conn = db.engine.connect().connection
df = psql.read_sql(sql, conn)
Run Code Online (Sandbox Code Playgroud)
但这并不好,因为我必须为每个查询重复此操作(并且每个视图都有一些查询).有没有办法我只是在开始时声明这个连接对象一次并将其结束?SQLAlchemy的ORM可以工作,但我更喜欢在这种情况下编写原始SQL.
编辑:
joris的建议适用于一个查询,但现在我遇到了另一个错误:
File "C:\Users\KF\flask-test\hello.py", line 107, in report
df = pd.read_sql_query(sql.format(vd='20140727', sd=sd, ed=ed), db.engine)
File "C:\Anaconda\envs\lightson\lib\site-packages\pandas\io\sql.py", line 363, in read_sql_query
parse_dates=parse_dates)
File "C:\Anaconda\envs\lightson\lib\site-packages\pandas\io\sql.py", line 823, …Run Code Online (Sandbox Code Playgroud) 我想以JSON的形式返回查询结果.我正在使用以下路由将一个模型实例作为JSON对象返回.
@mod.route('/autocomplete/<term>', methods=['GET'])
def autocomplete(term):
country = Country.query.filter(Country.name_pt.ilike('%'+ term + '%')).first()
country_dict = country.__dict__
country_dict.pop('_sa_instance_state', None)
return jsonify(json_list=country_dict)
Run Code Online (Sandbox Code Playgroud)
如果我使用该first()方法,此代码很有效.但是,我需要使用它all()来获得所有结果.当我这样做时,我得到以下错误.
country_dict = country.__dict__
AttributeError: 'list' object has no attribute '__dict__'
Run Code Online (Sandbox Code Playgroud)
我应该怎么做才能将整个结果列表作为JSON返回?
我是Flask的初学者.我正在构建一个简单的测验应用程序.我有两张桌子.一个是问题表,另一个是选项表,有一个正确的答案.我想展示一个问题和四个选项,然后是第二个问题,等等.我搜索了如何渲染到模板的每个地方.困住了路障.尝试了不同的懒惰选项.
Model.py
class Question(db.Model):
__tablename__ = 'edu_word_questions'
question_id = db.Column(db.Integer, primary_key = True)
word = db.Column(db.String(100))
question_type = db.Column(db.String(100))
answers = db.relationship('Question_answers', backref='Question',
lazy='subquery')
class Question_answers(db.Model):
__tablename__ = 'edu_question_answers'
answer_id = db.Column(db.Integer, primary_key=True)
answer = db.Column(db.String(100))
question_id = db.Column(db.Integer, db.ForeignKey('edu_word_questions.question_id'))
routes.py
@app.route('/quiz')
def quiz():
quiz = db.session.query(Question, Question_answers).join(Question_answers,Question.question_id == Question_answers.question_id)
# quiz = db.session.query(Question).all()
# answers = db.session.query(Question_answers).all()
return render_template('quiz.html', quiz=quiz)
HTML
{% for key,value in quiz %}
<li><h2>{{ word }}</h2>
<li><h2>{{ answer }}</h2>
{% endfor %}
Run Code Online (Sandbox Code Playgroud) 我正在尝试使用方法的负面条件进行Flask-SQLAlchemy查询filter_by().
我可以很容易地得到谁是我的系统管理员User.query.filter_by(admin=True)和谁没有,User.query.filter_by(admin=False)但我想用一个过滤器来查询要忽略的内容,例如:
notRach = User.query.filter_by(name!='Rachmaninoff')
# queries for all users whose name isn't Rachmaninoff
Run Code Online (Sandbox Code Playgroud)
我怎么能做到这一点?
我使用Flask并使用Flask-admin来管理学费支付应用程序。
Flask-Admin通过我在models.py中声明的SQLAlchemy自动生成了表行
这是我的桌子的图像:
现在,我想在每个总账单号旁边添加一个按钮,以结账。
我知道如何与添加列column_list中,通过提供方法模型视图,因为我尝试像下面这段代码:
column_list = ('student_id', 'total_bill', 'Pay Now')
Run Code Online (Sandbox Code Playgroud)
它将使视图显示如下:
现在,我想要“立即付款”列中的每个行都有一个按钮,就像我用HTML手动编写这样的代码一样:
每行都有一个结帐按钮,正如我上面提到的,此目的是为了结帐按钮。
所以,该怎么做..?,任何帮助将不胜感激
flask-sqlalchemy ×10
python ×8
flask ×7
sqlalchemy ×3
flask-login ×2
flask-admin ×1
jinja2 ×1
pandas ×1
python-3.x ×1
sql ×1