मैं Dropzone.js
का उपयोग कर CSV
फ़ाइलों को Flask
वेबसाइट के माध्यम से खींचने और ड्रॉप करने की अनुमति देने के लिए उपयोग कर रहा हूं। अपलोड प्रक्रिया बहुत अच्छा काम करता है। मैं अपलोड की गई फ़ाइल को अपने निर्दिष्ट फ़ोल्डर में सहेजता हूं और फिर को HTML
कोड में परिवर्तित करने के लिए df.to_html()
का उपयोग कर सकता हूं, जिसे मैं अपने टेम्पलेट में भेजता हूं। यह कोड में उस बिंदु पर आता है, लेकिन यह टेम्पलेट प्रस्तुत नहीं करता है और कोई त्रुटि नहीं फेंक दी जाती है। तो मेरा सवाल यह है कि Dropzone.js
क्यों होने से रोक रहा है?Dropzone.js फ्लास्क को टेम्पलेट प्रतिपादन से रोकता है
मैंने तालिका से HTML
कोड को वापस करने का प्रयास किया है और render_template
का उपयोग नहीं किया है, लेकिन यह भी काम नहीं करता है।
init .py
import os
from flask import Flask, render_template, request
import pandas as pd
app = Flask(__name__)
# get the current folder
APP_ROOT = os.path.dirname(os.path.abspath(__file__))
@app.route('/')
def index():
return render_template('upload1.html')
@app.route('/upload', methods=['POST'])
def upload():
# set the target save path
target = os.path.join(APP_ROOT, 'uploads/')
# loop over files since we allow multiple files
for file in request.files.getlist("file"):
# get the filename
filename = file.filename
# combine filename and path
destination = "/".join([target, filename])
# save the file
file.save(destination)
#upload the file
df = pd.read_csv(destination)
table += df.to_html()
return render_template('complete.html', table=table)
if __name__ == '__main__':
app.run(port=4555, debug=True)
upload1.html
<!DOCTYPE html>
<meta charset="utf-8">
<script src="https://rawgit.com/enyo/dropzone/master/dist/dropzone.js"></script>
<link rel="stylesheet" href="https://rawgit.com/enyo/dropzone/master/dist/dropzone.css">
<table width="500">
<tr>
<td>
<form action="{{ url_for('upload') }}", method="POST" class="dropzone"></form>
</td>
</tr>
</table>
संपादित
यहाँ है नमूना csv
डेटा मैं अपलोड कर रहा:
Person,Count
A,10
B,12
C,13
Complete.html
<html>
<body>
{{table | safe }}
</body>
</html>
आपका वापसी कथन पाश के लिए एक के अंदर है, केवल पाश की पहली यात्रा होगी लौटने से पहले भागो। आपको लगता है कि Dropzone.js कुछ भी क्यों कर रहा है? सर्वर पर जावास्क्रिप्ट चलाता है, फ्लास्क और जिन्जा सर्वर पर अलग-अलग चलाते हैं। – davidism
@ डेविडिज्म। आप 'लूप' के अंदर होने के बारे में सही हैं। मैंने तय किया कि बैकडेंटिंग द्वारा, लेकिन अभी भी एक ही समस्या है। मुझे यकीन नहीं है कि यह 'dropzone.js' है, लेकिन मेरा मानना है कि यह उन्मूलन की प्रक्रिया के कारण है। अगर मैं उस मार्ग की प्रतिलिपि बनाता हूं और 'html' को अपने हार्डड्राइव से 'csv' फ़ाइल पढ़ने से लोड करता हूं तो यह ठीक काम करता है। – user2242044
'full.html' के लिए सामग्री क्या है? – HassenPy