كيفية تصفية طلبات تطبيق FLASK بناءً على وكلاء المستخدمين؟

Jul 22, 2025ترك رسالة

مرحبًا يا من هناك! إذا كنت تقوم بتشغيل تطبيق Flask ، فقد تصادف الحاجة إلى تصفية الطلبات بناءً على وكلاء المستخدمين. وكلاء المستخدمين هم سلاسل تحدد المتصفح أو الجهاز أو التطبيق الذي يقدم الطلب إلى الخادم الخاص بك. يمكن أن يكون التصفية بناءً على وكلاء المستخدمين مفيدًا للغاية لأسباب مختلفة ، مثل حظر الروبوتات الخبيثة ، أو تقديم محتوى مختلف لمتصفحات محددة ، أو ببساطة إدارة حركة المرور.

بصفتي مورد Filtering Flask ، رأيت بشكل مباشر مدى أهمية وجود تصفية فعالة للمستخدم - في تطبيقات Flask. دعنا نغطس كيف يمكنك تحقيق ذلك.

لماذا تصفية بناء على وكلاء المستخدم؟

أولاً ، دعنا نتحدث عن سبب رغبتك في تصفية الطلبات بناءً على وكلاء المستخدمين. الروبوتات الخبيثة هي صداع كبير لتطبيقات الويب. يمكنهم زيادة تحميل الخادم الخاص بك ، أو كشط بياناتك ، أو تنفيذ إجراءات أخرى غير مرغوب فيها. من خلال تصفية وكلاء مستخدمي BOT المعروفين ، يمكنك حماية تطبيقك من هذه التهديدات.

سبب آخر هو تقديم محتوى مختلف بناءً على المتصفح أو الجهاز. على سبيل المثال ، قد لا تدعم بعض المتصفحات القديمة تقنيات الويب الحديثة. يمكنك اكتشاف هذه المتصفحات من خلال وكلاء المستخدمين وخدمتها نسخة مبسطة من تطبيقك.

كيفية الحصول على وكيل المستخدم في Flask

قبل أن تتمكن من تصفية الطلبات ، تحتاج إلى الحصول على وكيل المستخدم من الطلب الوارد. في Flask ، إنه واضح ومباشر. يمكنك استخدامطلبكائن ، وهو متاح في كل وظيفة مسار. هذا مثال بسيط:

من Flask Import Flask ، request app = flask (__ name__) @app.Route ('/') def index (): user_agent = request.headers.get ('user-ogent') return f'your user is:

في هذا الرمز ، نحصل علىالمستخدم - وكيلرأس من رؤوس الطلب. الrequest.Headersهو قاموس - مثل الكائن الذي يحتوي على جميع الرؤوس المرسلة مع الطلب.

المستخدم الأساسي - تصفية الوكيل

الآن بعد أن نتمكن من الحصول على وكيل المستخدم ، لنبدأ في التصفية. تتمثل إحدى الطرق البسيطة في التحقق مما إذا كان وكيل المستخدم يحتوي على كلمات رئيسية معينة. على سبيل المثال ، إذا كنت تريد حظر جميع الطلبات من روبوت معين ، فيمكنك القيام بشيء مثل هذا:

من قارورة استيراد قارورة ، طلب ، تطبيق الإجهاض = flask (__ name__) blocked_user_agents = ['badbot/1.0'] @app.route ('/') def index (): user_agent = request.headers.get ('user-agent) إذا كان user_agent وأي (bad_agent in user_agent for bad_agent in blocked_ous. تطبيق Flask الخاص بي! إذا __name__ == '__main__': app.run (debug = true)

في هذا الرمز ، لدينا قائمة بعوامل المستخدم المحظورة. نتحقق مما إذا كان وكيل المستخدم الوارد يحتوي على أي من الوكلاء المحظور. إذا كان الأمر كذلك ، فنحن نستخدمإحباطوظيفة لإرجاع رمز الحالة المحظور 403.

باستخدام تعبيرات منتظمة لتصفية أكثر تقدمًا

في بعض الأحيان ، تحتاج إلى مزيد من المرونة في التصفية الخاصة بك. هذا هو المكان الذي تأتي فيه التعبيرات العادية في متناول يدي. تتيح لك التعبيرات العادية مطابقة الأنماط في الأوتار. على سبيل المثال ، إذا كنت ترغب في منع جميع الروبوتات التي تبدأ بـ "BOT" ، فيمكنك استخدام تعبير منتظم.

استيراد من قارورة قارورة الاستيراد ، طلب ، Abort App = flask (__ name__) bot_regex = re.compile (r '^bot.*') @app.route ('/') def index (): user_agent = request.get.get ('user-agent') if flask و bot_regex.match (user_agent): إذا __name__ == '__main__': app.run (debug = true)

هنا ، نحن نستخدميكرروحدة في بيثون لإنشاء نمط تعبير منتظم. ال^الرمز يعني أن النمط يجب أن يبدأ بـ "الروبوت" و.*يعني أنه يمكن أن يتبعه أي شخصيات.

تصفية استنادًا إلى المتصفح أو الجهاز

قد ترغب أيضًا في تقديم محتوى مختلف بناءً على المتصفح أو الجهاز. على سبيل المثال ، إذا كان جهازًا محمولًا ، فيمكنك تقديم نسخة ودية من التطبيق الخاص بك. يمكنك استخدام مكتبات مثلIT - الإحالةلتحليل وكيل المستخدم والحصول على معلومات أكثر تفصيلا.

أولا ، تثبيتIT - الإحالةمكتبة باستخدامPIP تثبيت UA - محلل. ثم ، إليك كيفية استخدامه:

من Flask Import Flask ، طلب من ua_parser import user_agent_parser app = flask (__ name__) @app.route ('/') def index (): user_agent = request.headers.get ('user-agent') if user_agent: parsed_ua = user_agent_pars parsed_ua ['device'] ['family'] إذا كانت الجهاز _type في ['iPhone' ، 'iPad']: return 'مرحبًا بك على جهاز Apple الخاص بك! " آخر: العودة "مرحبًا بك على الأجهزة الأخرى!" العودة "مرحبًا!" إذا __name__ == '__main__': app.run (debug = true)

في هذا الرمز ، نستخدمIT - الإحالةمكتبة لتحليل وكيل المستخدم. ثم نتحقق من عائلة الجهاز. إذا كان iPhone أو iPad ، فنحن نخدم رسالة محددة ؛ خلاف ذلك ، نحن نخدم رسالة مختلفة.

Clear glass Filtering FlaskLaboratory Filtering Flask

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

إذا كنت في بيئة مختبرية ، فنحن نقدم أيضًا بعض القوارير الرائعة. تحقق من لديناالمختبرات الزجاج الصافي تصفية قوارير مع الأنبوب العلويوالشكل المخروطي الزجاجي المختبري الشكل إرلينماير ترشيح قوارير مع أنابيب العلوي. تم تصميم هذه القوارير لتلبية احتياجات التصفية الخاصة بك في بيئة علمية.

اتصل بنا للحصول على احتياجاتك في التصفية

سواء كنت تبحث عن مستخدم تطبيق Flask - حلول تصفية الوكيل أو قوارير تصفية المختبر عالية الجودة ، نحن هنا للمساعدة. إذا كنت مهتمًا بشراء منتجاتنا أو مناقشة متطلباتك المحددة ، فلا تتردد في التواصل. لدينا فريق من الخبراء على استعداد لمساعدتك في العثور على أفضل الحلول لاحتياجاتك.

مراجع

  • توثيق قارورة.
  • بيثونيكررتوثيق الوحدة النمطية.
  • IT - الإحالةوثائق المكتبة.