def processRequest(req): debug = wsgi_app.debug c = req.path_info_pop() func = getattr(cmd, 'cmd_' + c, None) if func != None: if debug: debugprint('->', '/' + c, req.body) try: data = json.loads(req.body.decode('utf8')) except: return badRequest() try: resp = func(data) resp = json.dumps(resp) except: database.rollback() raise else: database.commit() if debug: debugprint('<-', resp) return webob.Response(resp, 200) return notFound()
def __call__(self, environ, start_response): try: return self.app(environ, start_response) finally: database.rollback()
@mod.route("/register/", methods=["GET", "POST"]) def register(): form = RegisterForm(request.form) if form.validate_on_submit(): # Create new User instance user = User( name=form.username.data, email=form.email.data, password=form.password.data, ) try: user.save() except UniquenessViolation, err: if err.column_name == "email": form.email.errors.append("There is already an account registered with that email address.") elif err.column_name == "name": form.username.errors.append("There is already an account registered with that username.") else: login_user(user) # Flash a message that gets displayed only once. flash("Welcome to the herd.") return redirect(url_for("users.profile")) finally: database.rollback() return render_template("users/register.html", form=form)