我有一个表单,它允许用户输入一些文本,并在用户提交表单时。返回该文本并使用该文本的 PIL 模块生成图像。
@app.route('/enter')
def index():
img = Image.new('RGB',(1000,1000))
txt=request.form['text']
font=ImageFont.truetype("ariel.ttf",30)
draw = ImageDraw.Draw ( img )
draw.text ( ( 0 , 0), txt, font=font, fill="#000000" )
io = StringIO()
img.save(io, format='png')
data = io.getvalue().encode('base64')
return render_template('index.html',data=data)
Run Code Online (Sandbox Code Playgroud)
然后将此动态图像转发到显示它的网页
<img src="data:image/png;base64,{{data}}" > // html shows the image
Run Code Online (Sandbox Code Playgroud)
但这需要重新加载或刷新页面。是否可以使用javascript或json来获取表单数据并在不刷新页面的情况下呈现图像。此外,我正在使用选项卡来显示页面的内容,并且根据用户响应动态更新的 img 包含在 #tab4 如何在 Flask 中设置 url:
@app.route('/enter#tab4', methods=[ 'POST'])
Run Code Online (Sandbox Code Playgroud)
或者干脆
@app.route('/enter', methods=[ 'POST'])
Run Code Online (Sandbox Code Playgroud) 我对此进行了很多搜索。我得到的所有文章都包括 SQLAlchemy,但没有一篇涉及 mysql。我正在使用 Flask,我在 mysql 中有一个数据库,我需要在页面中显示数据。比如 1000 张图片,每页 10 张,所以 100 页。在mysql中我们可以借助limit来进行分页。路线可以是:
@app.route('/images', defaults={'page':1})
@app.route('/images/page/<int:page>')
Run Code Online (Sandbox Code Playgroud)
我想问的是,这就是分页所需的全部吗?或者我在这里忘记了一些重要的事情?mysql 语法是:
db = mysql.connect('localhost', 'root', 'password', 'img')
cursor = db.cursor()
cursor.execute('SELECT Id,Title,Img FROM image ORDER BY RAND() limit 20 offset 0;')
data = list(cursor.fetchall())
Run Code Online (Sandbox Code Playgroud)
获取前 20 个结果,但如何根据 pageno 获取下一个结果?Flask-paginate 库仅适用于 tSQLAlchemy。