Eam*_*nny 5 json interactive file-upload flask python-3.x
Flask 文档 1.0、0.12.x 或更旧的文档中是否有任何地方实际解释了如何正确实现 Flask 上传。我已经编码 30 年了,但我无法理解任何 Flask 文档。我指的是除了 hello world 示例之外的任何一个。每个示例都包含诸如“以及您需要的另一件事”之类的信息。这意味着文档/代码不完整。充其量只是一点点。
特别是,没有明确的解释:
@app.route('/upload/<filename>')
Run Code Online (Sandbox Code Playgroud)
文件名是什么?它是一个变量吗?它是一个占位符吗?这是返回变量分配的东西吗?<> 符号的作用是什么?除了使用 JSON 之外,还有什么方法可以保留 10-20 个变量的全局视图?这些都不清楚,但却是构建任何重要网站的基础。
当生成基于 Flask/html 的网站示例时,我找不到代码:
一些 upload_file() 函数(flask 文档)显示渲染的页面,而其他函数(用户网站/堆栈溢出)则返回文件的地址。我已经成功地渲染了一个页面而不返回文件名,所以我不知道为什么人们除了 upload_file 之外还编写 /upload 。
一些 stackoverflow 示例显示了两个函数,它们都称为 upload_file(),一个用于发布,另一个用于显示图像。这会在 Flask 0.12.4(在 Debian Stretch 下)中引发错误。
我想有人有关于如何生成一个具有“步骤 1、步骤 2、步骤 3、最终”类型设置的网站的文档,其中每个页面都由 Flask 渲染。目前,我找不到这样的东西。
难道只有我一个人迷茫吗?我可以看到,如果你是这方面的专家,那么你就可以编写 HTML/Python 交互式网站,而无需任何 PhP,这对我来说非常有吸引力,因为我已经是 Python 方面的专家了。
SUB_FOLDER = 'tables/uploads'
UPLOAD_FOLDER = '/var/www/html/{}'.format(SUB_FOLDER)
ALLOWED_EXTENSIONS = set(['txt', 'pdf', 'png',
'jpg', 'jpeg', 'gif'])
@app.route('/runtable', methods=['GET', 'POST'])
def first_table():
if request.method != 'POST':
my_table = [{"text": "line one", "code": 0},
{"text": "line two", "code": 1}]
return render_template('step1.html',
my_table=my_table)
@app.route('/uploader', methods=['GET', 'POST'])
def upload_file():
if request.method == "POST":
f = request.files['file']
filename = os.path.join(app.config['UPLOAD_FOLDER'],
secure_filename(f.filename))
f.save(filename)
fullFileName = os.path.join('http://localhost/',
SUB_FOLDER,
secure_filename(f.filename))
jsonItem = [{"text": "Sample table header", "code": 0},
{"text": "second line of text", "code": 2}]
return render_template('step2.html',
my_table=jsonItem,
filename=fullFileName)
pass
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1205 次 |
| 最近记录: |