2016-04-03 28 views
1

Ben de esasen ad, soyad, kullanıcı adı ve şifresini okuyup sonra MongoDB bunu saklayacak bir post isteği işlemek çalışıyorum geçtiği şu app.py dosya var ama bunun için ise sonra. Şu andan itibaren, gönderi/alma isteğini alma konusunda sorun yaşıyorum. Ben localhost veri göndermek için postacı kullanmaya çalıştığımda çalıştırmak çalışıyorumSorun/GET

bile küçük pasajı bana kötü istek hata veriyor: 5000/kayıt.

Herhangi bir yardım için teşekkür ederiz.

from flask import * 
#from pymongo import MongoClient 
#import json 
app = Flask(__name__) 

# main interface 
@app.route("/") 
def main(): 
    return render_template('index.html') 

# Register Interface 
@app.route('/register/', methods = ['GET']) 
def register(): 
    #collection = db['userdb'] 
    firstname = request.form['firstname'] 
    lastname = request.form['lastname'] 
    username = request.form['username'] 
    password = request.form['password'] 
    #postData = { 'firstname': firstname, 'lastname': lastname,'username':username,'password':password} 
    #json = json.dumps(postData) 
    #try: 
     #status = db.userdb.insert_one(postData).insert_id 
    #except: 
     #status = 'This user is already registerd' 
    return 'This data works' 

if __name__ == "__main__": 
    app.run() 

cevap

4

rota dekoratör için "POST' yöntemi eklemek gerekiyor, ancak bir adım daha gereken bir kullanın deyim görünümü request.form atamaları görmezden yapmak durumunda.

from flask import * 
#from pymongo import MongoClient 
#import json 
app = Flask(__name__) 

# main interface 
@app.route("/") 
def main(): 
    return 'go to <a href="/register/">register</a>' 

# Register Interface 
@app.route('/register/', methods = ['GET','POST']) 
def register(): 
    #collection = db['userdb'] 
    if request.method == 'POST': 
     firstname = request.form['firstname'] 
     lastname = request.form['lastname'] 
     username = request.form['username'] 
     password = request.form['password'] 
     #postData = { 'firstname': firstname, 'lastname': lastname,'username':username,'password':password} 


    return 'This data works' 

if __name__ == "__main__": 
    app.run(debug=True) 

budur Her iki GET ve POST. Ayrıca ben app.run argüman olarak Gerçek hata ayıklama = ekledik fark kullanmak görünümlerinde ortak modeli. Bu çok daha kolay kod hata ayıklama da kolaylaştırır.

+1

Bu mükemmel çalıştı Gerçekten teşekkürler müthiş cevap için çok ben teşekkür bunu yapmak zorunda olduğunu bilmiyordum bu yüzden python için oldukça yeni. D –

3
@app.route('/register/', methods = ['GET']) 

yukarıdaki dekoratör işleyici yalnızca istekleri GET eşlenir gelir.

@app.route('/register/', methods = ['GET', 'POST']) 

Bunu deneyin ve gitmek için iyi olmalısınız.

+1

Üzgünüz, teşekkürler T. Arboreus için .... eksik parça o alıcı –