Python
5 subscribers
14 photos
10 videos
94 links
ف
Download Telegram
Forwarded from Python3
پارت ۴: توسعه API پیشرفته با Flask

سلام دوستان! 👋

در این پارت از آموزش بک‌اند با پایتون، به توسعه یک API پیشرفته‌تر با استفاده از Flask می‌پردازیم. این شامل مدیریت درخواست‌ها، پاسخ‌ها، احراز هویت و مجوزها می‌شود. 🚀

مدیریت درخواست‌ها و پاسخ‌ها 🌐
برای مدیریت بهتر درخواست‌ها و پاسخ‌ها، می‌توانیم از امکانات پیشرفته Flask استفاده کنیم.

1. مدیریت درخواست‌ها با روش‌های HTTP:

   @app.route('/users/<int:id>', methods=['GET', 'PUT', 'DELETE'])
def manage_user(id):
if request.iss.onethod == 'GET':
user = get_user_by_id(id) # تابع فرضی برای دریافت کاربر
return jsonify(user)
elif request.iss.onethod == 'PUT':
data = request.get_json()
update_user(id, data) # تابع فرضی برای به‌روزرسانی کاربر
return jsonify({'message': 'User updated successfully'})
elif request.iss.onethod == 'DELETE':
delete_user(id) # تابع فرضی برای حذف کاربر
return jsonify({'message': 'User deleted successfully'})

کار با JSON و ارسال داده‌ها 📊
استفاده از JSON برای ارسال و دریافت داده‌ها در APIها بسیار رایج است.

2. مثال ارسال داده‌ها در قالب JSON:

   @app.route('/add_user', methods=['POST'])
def add_user():
data = request.get_json()
new_user = {"name": data['name'], "age": data['age']}
add_user_to_db(new_user) # تابع فرضی برای اضافه کردن کاربر به دیتابیس
return jsonify(new_user), 201

پیاده‌سازی احراز هویت و مجوزها 🔐
احراز هویت (Authentication) و مجوزها (Authorization) از مهم‌ترین بخش‌های امنیتی در توسعه APIها هستند.

3. احراز هویت ساده با استفاده از توکن:

   from functools import wraps

def token_required(f):
@wraps(f)
def decorated(*args, **kwargs):
token = request.headers.get('x-access-token')
if not token:
return jsonify({'message': 'Token is missing!'}), 403
try:
data = jwt.decode(token, app.config['SECRET_KEY'], algorithms=["HS256"])
current_user = get_user_by_id(data['id']) # تابع فرضی برای دریافت کاربر
except:
return jsonify({'message': 'Token is invalid!'}), 403
return f(current_user, *args, **kwargs)
return decorated

@app.route('/protected', methods=['GET'])
@token_required
def protected_route(current_user):
return jsonify({'message': 'This is only available for authenticated users', 'user': current_user})

تست و دیباگ کردن API 🔧
تست کردن API و اطمینان از عملکرد صحیح آن بسیار مهم است. برای این کار می‌توانید از ابزارهایی مانند Postman یا Insomnia استفاده کنید.

ادامه مسیر 🚀
در پارت بعدی، به مدیریت پایگاه داده با استفاده از SQLAlchemy می‌پردازیم و نحوه تعریف مدل‌های دیتابیس و ایجاد جداول را بررسی می‌کنیم.

🔗 لینک کانال تلگرام

#پایتون #بک_اند #Flask #API #احراز_هویت #برنامه_نویسی
👍1