اذهب إلى المحتوى
  • 0

كيفية معرفة المسار route الحالي في فلاسك Flask؟

Mohssen A Mohssen

السؤال

في مشروع فلاسك Flask لدي، يعمل أكثر من مسار على نفس الدالة، بالشكل التالي:

 

@app.route("/users/")
@app.route("/show-users/")
def show_users():
    ....

كيف يمكنني الحصول على المسار الحالي الذي إستخدمه العميل للوصول إلى هذه الدالة؟ أي كيفية الحصول علىأحد المسارين  /show-users/ أو /users/ داخل الدالة؟

رابط هذا التعليق
شارك على الشبكات الإجتماعية

Recommended Posts

  • 1

يوفر فلاسك Flask إمكانية الوصول إلى المسار الحالي من خلال إستخدام الكائن request، حيث يحتوي على الخاصية path التي تحمل المسار الحالي:

from flask import Flask, request

@app.route("/users/")
@app.route("/show-users/")
def show_users():
    return request.path

في الكود السابق سوف يتم عرض المسار المستخدم للوصول إلى الدالة show_users 

أيضًا يمكنك أن تستعمل url_rule بطريقة مشابهة، على النحو التالي:

from flask import Flask, request

@app.route("/users/")
@app.route("/show-users/")
def show_users():
    return str(request.url_rule)

وسوف يؤدي هذا الكود نفس الغرض.

رابط هذا التعليق
شارك على الشبكات الإجتماعية

  • 0

يمكنك استخدام خيار آخر هو استخدام متغير نقطة النهاية كما في الطريقة التالية

@app.route("/api/v1/generate_data", methods=['POST'], endpoint='v1')
@app.route("/api/v2/generate_data", methods=['POST'], endpoint='v2')
def generate_data():
    version = request.endpoint
    return version

إذا كنت تريد سلوكا مختلفا لكل مسار ، فيمكنك القيام بإنشاء دالتين مختلفتين لفعل ذلك كما هو واضح في المثال التالي

@app.route("/show-users/")
@requires_auth
def top():
    ...

@app.route("/users/")
@requires_auth
def anti_top():
    ...

 

رابط هذا التعليق
شارك على الشبكات الإجتماعية

انضم إلى النقاش

يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.

زائر
أجب على هذا السؤال...

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   جرى استعادة المحتوى السابق..   امسح المحرر

×   You cannot paste images directly. Upload or insert images from URL.

  • إعلانات

  • تابعنا على



×
×
  • أضف...