python - How to fetch column values using SQLAlchemy? -


i using flask+python , check if username (and email) taken or not using logic:

@app.route('/register', methods=['get', 'post']) def register():     form = signupform()     if form.validate_on_submit():       user = users.query.filter_by(username=form.username.data).first()       email = users.query.filter_by(email=form.email.data).first()       if form.username.data in user:         error = 'username taken. choose another'       elif form.email.data in email:         error = 'email registered. login or register email'       else:           user = users(            form.username.data,           form.password.data,           #form.confirm.data ,           form.email.data,           1,           # form.cityaddress.data,           # form.countryaddress.data,           #form.accept_tos.data,       )       db.session.add(user)       db.session.commit()       return redirect(url_for('index')) 

but giving error object has no attribute 'username'

i know logic fetching data db not correct. have little knowledge of sqlalchemy.

could suggest me how can fetch username (and email) column value table users , check them if there same form.username.data ?

your queries fine, return value first() instance of user object, or none if there no results:

  u = users.query.filter_by(username=form.username.data).first()   if u not none:       print u.username       print u.email       

so given that, here's logic like:

  user_by_name = users.query.filter_by(username=form.username.data).first()   user_by_email = users.query.filter_by(email=form.email.data).first()   if user_by_name:     error = 'username taken. choose another'   elif user_by_email:     error = 'email registered. login or register email'   else:       #unique user , email 

you in 1 query:

 existing = users.query.filter((users.username == form.username.data) | (users.email == form.email.data)).all()  if existing:      error = 'user or email taken' 

note use of filter rather filter_by - cant use bitwise operators in filter_by. here's quick working example


Comments

Popular posts from this blog

ios - iPhone/iPad different view orientations in different views , and apple approval process -

java Extracting Zip file -

C# WinForm - loading screen -