के पैरामीटर प्रबंधित करना मुझे अपनी वेबसाइट में कुछ खोज सुविधा चाहिए। आउटपुट पेज में, मुझे एक ही पृष्ठ में सभी परिणाम मिल रहे हैं। हालांकि, मैं इसे कई पृष्ठों (जैसे 100 खोज/पृष्ठ) में वितरित करना चाहता हूं। इसके लिए, मैं "urlfor" में कई डिफ़ॉल्ट खोजों को पार कर रहा हूं लेकिन यह काम नहीं कर रहा है। मुझे पता है कि मैं एक छोटी सी त्रुटि कर रहा हूं लेकिन मैं इसे पकड़ नहीं रहा हूं।यूआरएल (पायथन फ्लास्क)
@app.route('/', methods=['GET', 'POST'])
def doSearch():
entries=None
error=None
if request.method=='POST':
if request.form['labelname']:
return redirect(url_for('show_results',results1='0-100', labelname=request.form['labelname']))
else:
error='Please enter any label to do search'
return render_template('index.html',entries=entries, error=error)
@app.route('/my_search/<labelname>')
def show_results(labelname=None, resultcount=None, results1=None):
if not session.get('user_id'):
flash('You need to log-in to do any search!')
return redirect(url_for('login'))
else:
time1=time()
if resultcount is None:
total_count=g.db.execute(query_builder_count(tablename='my_data',nametomatch=labelname, isextension=True)).fetchall()[0][0]
limit_factor=" limit %s ,%s"%(results1.split('-')[0],results1.split('-')[1])
nk1=g.db.execute(query_builder(tablename='my_data',nametomatch=labelname, isextension=True) + limit_factor)
time2=time()
entries=[]
maxx_count=None
for rows in nk1:
if maxx_count is None:
maxx_count=int(rows[0])
entries.append({"xmlname":rows[1],'xmlid':rows[2],"labeltext":rows[12]})
return render_template('output.html', labelname=labelname,entries=entries, resultcount=total_count, time1=time2-time1, current_output=len(entries))
यहाँ मैं की तरह यूआरएल पर उत्पादन चाहते हैं "http://127.0.0.1:5000/my_search/assets?results1=0-100
" इसके अलावा, अगर मैं ब्राउज़र में यूआरएल पता संपादित मैं अगले 100 परिणाम मैं इसे प्राप्त कर सकते हैं चाहता हूँ की तरह:
यहाँ नीचे मेरी कोड है "http://127.0.0.1:5000/my_search/assets?results1=100-100
"
नोट: यहां मैं एसक्लाइट का बैकएंड के रूप में उपयोग कर रहा हूं; तो मैं अपने परिणामों को सीमित करने के लिए अपने प्रश्नों में "limit_factor
" का उपयोग करूंगा। और "query_builder
" और "query_builder_count
" केवल जटिल कार्य हैं जो जटिल एसक्यूएल प्रश्न उत्पन्न कर रहे हैं।
लेकिन मुझे जो त्रुटि मिल रही है वह है "noneType" विभाजित नहीं हो सकता है। यह "limit_factor"
पर रुक गया।
यहां सीमा कारक केवल एक फ़िल्टर है जिसे मैंने लागू किया है; लेकिन मैं अधिक फ़िल्टर लागू करना चाहता हूं, उदाहरण के लिए मैं अपने स्थान "http://127.0.0.1:5000/my_search/assets?results1=0-100&location=asia
"
बहुत बढ़िया .. । यह काम कर रहा है.. । और हाँ आप सही हैं; मैं इसे एसक्यूएल इंजेक्शन के लिए कमजोर बना रहा हूं, मैं उन सभी को बदल दूंगा; लेकिन अभी तक, मैं सभी उपयोगकर्ता-इनपुट फ़िल्टर करने के लिए regex का उपयोग कर रहा हूँ !!! – namit