Repository navigation
Expand file tree
/
Copy pathmain.py
More file actions
63 lines (48 loc) · 1.78 KB
/
Copy pathmain.py
File metadata and controls
63 lines (48 loc) · 1.78 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
from flask import Flask, jsonify, request
from flask_sqlalchemy import SQLAlchemy
app = Flask(__name__)
# Database configuration
app.config[
"SQLALCHEMY_DATABASE_URI"
] = "postgresql://dbuser:mysecretpassword@localhost:5432/postgres"
app.config["SQLALCHEMY_TRACK_MODIFICATIONS"] = False
db = SQLAlchemy(app)
# Model definition
class User(db.Model):
__tablename__ = "users"
user_id = db.Column(db.Integer, primary_key=True)
email = db.Column(db.String(), nullable=False)
# Route to get all users
@app.route("/users", methods=["GET"])
def get_users():
users = User.query.all()
return jsonify([{"user_id": user.user_id, "email": user.email} for user in users])
# Route to get a specific user by user_id
@app.route("/users/<int:user_id>", methods=["GET"])
def get_user(user_id):
user = User.query.filter_by(user_id=user_id).first()
if user:
return jsonify({"user_id": user.user_id, "email": user.email})
else:
return jsonify({"message": "User not found"}), 404
@app.route("/users/<int:user_id>", methods=["PUT"])
def update_user(user_id):
user = User.query.filter_by(user_id=user_id).first()
if user:
data = request.get_json()
user.email = data.get("email", user.email)
db.session.commit()
return jsonify({"message": "User updated successfully"}), 200
else:
return jsonify({"message": "User not found"}), 404
@app.route("/users/<int:user_id>", methods=["DELETE"])
def delete_user(user_id):
user = User.query.filter_by(user_id=user_id).first()
if user:
db.session.delete(user)
db.session.commit()
return jsonify({"message": "User deleted successfully"}), 200
else:
return jsonify({"message": "User not found"}), 404
if __name__ == "__main__":
app.run(debug=True)