×
全部 > AI技术 > AI编程 > AI代码生成 > 生成带校验的Flask注册接口

生成带校验的Flask注册接口

通义千问2.5-Coder-32B(阿里云百炼)

```python from flask import Flask, request, jsonify from marshmallow import Schema, fields, ValidationError app = Flask(__name__) class UserSchema(Schema): username = fields.Str(required=True) email = fields.Email(required=True) password = fields.Str(required=True) @app.route('/register', methods=['POST']) def register(): try: user_data = request.get_json() schema = UserSchema() validated_data = schema.load(user_data) # Here you would typically add logic to save the user to a database # For this example, we'll just return the validated data return jsonify({"message": "User registered successfully", "data": validated_data}), 201 except ValidationError as err: return jsonify(err.messages), 400 except Exception as e: return jsonify({"error": str(e)}), 500 if __name__ == '__main__': app.run(debug=True) ```

DeepSeek V3(Deepseek)

```python from flask import Flask, request, jsonify from werkzeug.security import generate_password_hash import re app = Flask(__name__) def validate_email(email): """Validate email format using regex""" pattern = r'^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$' return re.match(pattern, email) is not None def validate_password(password): """Validate password meets requirements""" if len(password) < 8: return False if not any(char.isdigit() for char in password): return False if not any(char.isupper() for char in password): return False return True @app.route('/register', methods=['POST']) def register(): try: data = request.get_json() # Check required fields if not data or 'email' not in data or 'password' not in data: return jsonify({'error': 'Email and password are required'}), 400 email = data['email'] password = data['password'] # Validate email if not validate_email(email): return jsonify({'error': 'Invalid email format'}), 400 # Validate password if not validate_password(password): return jsonify({ 'error': 'Password must be at least 8 characters long and contain at least one number and one uppercase letter' }), 400 # Hash password and store user (simplified example) hashed_password = generate_password_hash(password) # In a real application, you would save the user to a database here return jsonify({ 'message': 'User registered successfully', 'email': email }), 201 except Exception as e: return jsonify({'error': str(e)}), 500 if __name__ == '__main__': app.run(debug=True) ```

gpt-4o(OpenAI)

```python from flask import Flask, request, jsonify from werkzeug.exceptions import HTTPException app = Flask(__name__) @app.errorhandler(HTTPException) def handle_http_exception(e): response = e.get_response() response.data = jsonify({"error": e.description}) response.content_type = "application/json" return response @app.route('/register', methods=['POST']) def register(): try: # 获取请求中的数据 data = request.json # 参数校验 if not data: raise ValueError("No data provided") username = data.get('username') password = data.get('password') if not username or not password: raise ValueError("Username and password are required") if len(username) < 5: raise ValueError("Username must be at least 5 characters long") if len(password) < 8: raise ValueError("Password must be at least 8 characters long") # 模拟用户注册逻辑(例如插入数据库) # 假设注册成功 return jsonify({"message": "Successfully registered"}), 201 except ValueError as e: response = jsonify({"error": str(e)}) response.status_code = 400 return response except Exception as e: response = jsonify({"error": "An unexpected error occurred"}) response.status_code = 500 return response if __name__ == '__main__': app.run(debug=True) ``` 上述代码使用 Flask 框架实现了一个注册接口,添加了参数校验和错误处理。通过 `@app.errorhandler(HTTPException)` 可以处理 HTTP异常,并将错误返回给调用者。注册过程中检查请求的数据、用户名和密码的长度,并通过 flask 的 `jsonify` 函数返回相应的错误信息或成功信息。

claude3.5 sonnet 20241022(Anthropic)

```python from flask import Flask, request, jsonify from flask_sqlalchemy import SQLAlchemy from marshmallow import Schema, fields, ValidationError app = Flask(__name__) app.config['SQLALCHEMY_DATABASE_URI'] = 'sqlite:///users.db' db = SQLAlchemy(app) class User(db.Model): id = db.Column(db.Integer, primary_key=True) username = db.Column(db.String(80), unique=True, nullable=False) email = db.Column(db.String(120), unique=True, nullable=False) class UserSchema(Schema): username = fields.String(required=True) email = fields.Email(required=True) user_schema = UserSchema() @app.route('/register', methods=['POST']) def register(): try: # Validate and deserialize input user_data = user_schema.load(request.json) # Check if user already exists if User.query.filter_by(username=user_data['username']).first(): return jsonify({"error": "Username already exists."}), 400 if User.query.filter_by(email=user_data['email']).first(): return jsonify({"error": "Email already exists."}), 400 # Create new user new_user = User(username=user_data['username'], email=user_data['email']) db.session.add(new_user) db.session.commit() return jsonify({"message": "User registered successfully."}), 201 except ValidationError as err: return jsonify(err.messages), 400 except Exception as e: return jsonify({"error": str(e)}), 500 if __name__ == '__main__': db.create_all() # Create database tables app.run(debug=True) ```

模型名称 模型提供商 响应总时长(s) 生成 token 数 首 token 延迟(s) 生成速率(tokens/s)
4.33
响应最快
202
0.51
延迟最小
46.61
速度最快
23.62
416
内容最多
4.16
17.61
11.88
395
2.04
33.25
8.26
0
2.63
0
AI文本生成
38家服务商提供服务
AI深度推理
11家服务商提供服务
AI代码生成
11家服务商提供服务
AI数学模型
10家服务商提供服务