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

Mohssen A Mohssen

الأعضاء
  • المساهمات

    317
  • تاريخ الانضمام

  • تاريخ آخر زيارة

كل منشورات العضو Mohssen A Mohssen

  1. قمت بعمل مشروع بفلاسك Flask كخدمة API ولكن أردت ان أضيف كلمة /api/ قبل كل المسارات، لذلك كنت أبحث عن طريقة تقوم بهذا الأمر بطريقة تلقائية مشابهة للكود التالي: PREFIX = "/api/v1" @app.route(PREFIX + "/") def index(): return "Home page" @app.route(PREFIX + "/about") def about(): return "abour us page" هل يمكن عمل هذا الأمر بطريقة تلقائية بدون التعديل على كل مسار على حدى؟
  2. لدي مشروع فلاسك Flask وأريد أن أقوم بتنفيذ دالة معينة في وقت محدد عندما يقوم المستخدم بالدخول إلى مسار ما، على سبيل المثال: import time from flask import Flask, request, render_template app = Flask(__name__) def date_time(): print("Working at: ", time.strftime("%A, %d. %B %Y %I:%M:%S %p")) @app.route('/', methods=['POST', 'GET']) def index(): # Execute date_time() after 1 hour return render_template("home.html") if __name__ == '__main__': app.run(debug=True) أريد تنفيذ الدالة date_time كل ساعة من لحظة دخول المستخدم إلى المسار / ، حاولت أن أستخدم corn ولكن لم أستطع أن أقوم بذلك من خلال كود Python. هل توجد طريقة للقيام بهذا الأمر في فلاسك Flask؟
  3. أحاول أن أقوم بإرجاع قائمة بكل المستخدمين وإرسال هذه القائمة من خلال API ككود JSON : @app.route('/users/') def users(): # جلب البيانات بإستخدام SQLAlchemy هنا return jsonify(json_list = qryresult) ولكن يظهر لي الخطأ التالي: TypeError: <flaskext.sqlalchemy.BaseQuery object at 0x191b1ed80> is not JSON serializable
  4. قمت بعمل جملة طباعة بسيطة قبل سطر تشغيل التطبيق، ولكن وجدت أن هذه الجملة يتم طباعتها مرتين وليس مرة واحدة: from flask import Flask app = Flask(__name__) @app.route('/', methods=['POST', 'GET']) def index(): return "home page" if __name__ == '__main__': print('# Starting #') # يتم طباعة هذه الجملة مرتين app.run(debug=True) حيث وجدت أن نتيجة تشغيل التطبيق كالتالي: # Starting # * Serving Flask app "main" (lazy loading) * Environment: production WARNING: This is a development server. Do not use it in a production deployment. Use a production WSGI server instead. * Debug mode: on * Restarting with stat # Starting # * Debugger is active! * Debugger PIN: 395-899-610 * Running on http://127.0.0.1:5000/ (Press CTRL+C to quit) لماذا يتم تشغيل التطبيق مرتين وليس مرة واحدة؟ ألن يؤثر هذا الأمر على أداء المشروع؟
  5. أحاول أن أقوم بعمل مسار يتأكد من المستخدم ويعيد الصورة الخاصة به، ولكن لا يمكنني أن أرسل صورة بإستخدام فلاسك Flask، هل توجد طريقة لإرجاع صورة من مسار معين بدلًا من وضع الصورة في مجلد static، بحيث يمكنني زيارة المسار route التالي وتظهر الصورة: http://localhost:5000/user-image/
  6. قمت بإنشاء بيئة إفتراضية جديدة virtual env وقمت بعمل مشروع فلاسك Flask بسيط، ولكن عندما أقوم بتشغيله يظهر لدي الخطأ التالي: ImportError: cannot import name 'Flask' from partially initialized module 'flask' (most likely due to a circular import) (./blog/flask.py) بالرغم من أني قمت بتثبيت فلاسك Flask من فترة وكانت المشاريع تعمل بدون البيئة الإفتراضية. هنا كود الملف flask.py: from flask import Flask, request app = Flask(__name__) @app.route("/") def hello(): return "Hello, World!" if __name__ == "__main__": app.run() قمت بتجربة عمل ملف آخر ولكن ظهر لدي خطأ مختلف: ImportError: No Module Named Flask ما سبب هذه المشكلة وكيف يمكنني إصلاحها؟
  7. أتعلم في الوقت الحالي كيفية عرض قوالب Templates في فلاسك Flask، ولكن المشكلة أن أي قالب أقوم بإنشائه لا تعمل فيه ملفات CSS أو JavaScript وأحصل على الخطأ 404 ، حاولت تعديل المسارات أكثر من مرة ولكن لا فائدة. هنا بنية المشروع: /app |- app_runner.py /services |- app.py /templates |- home.html /styles |- style.css ما سبب هذه المشكلة؟ وكيف يمكنني حلها؟
  8. حاولت أن أقوم بعمل نظام تسجيل دخول للمستخدمين في مشروع مبني بإستخدام فلاسك Flask، ولكن عندما حاولت الإتصال بقاعدة البيانات يظهر لي الخطأ التالي: ImportError: No module named MySQLdb قمت بتثبيت MySQL وتأكدت من الكود ولكن ما يزال الخطأ يظهر. أنا أستعمل SQLAlchemy وفلاسك الإصدار 1.1 كيف يمكنني حل هذه المشكلة؟
  9. أحاول الوصول إلى جسم طلب من نوع POST بغض النظر عن قيمة Content-Type الموجودة في رأس الطلب، لكن أحيانًا عندما أستعمل request.data كما في الكود التالي، لكن أحصل على البيانات بعد عمل parse لها: @app.route('/', methods=['POST']) def index(): data = request.data # يكون فارغ في بعض الأحيان # ... أريد الحصول على جسم الطلب Request Body في شكله الخام raw data بدون تعديل هذه القيمة. كيف يمكنني القيام بهذا الأمر؟
  10. لديك مشروع مبني بإستخدام فلاسك Flask ولكن عندما أحاول أن أقوم بعمل API وطلب أحد المسارات بإستخدام Ajax عبر jQuery يظهر لي هذا الخطأ: XMLHttpRequest cannot load http://... No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin ... is therefore not allowed access. أعلم أن سبب هذه المشكلة هو Cross-Origin Resource Sharing (CORS) ولكن لا أعرف كيف أصلح هذه المشكلة في فلاسك Flask، هل يجب أن أقوم بتثبيت مكتبة معينة؟ كيف أصلح هذه المشكلة؟
  11. أحاول أن أبني ملف sitemap.xml و فهرس index للموقع يدويًا عبر فلاسك Flask لذلك أحتاج إلى الحصول على كل المسارات المسجلة في التطبيق تلقائيًا، مع العلم أن التطبيق يحتوي على العديد من المسارات. from flask import Flask, url_for, Response, request app = Flask(__name__) @app.route("/") def index(): pass @app.route("/users") def users(): pass # .... هل توجد طريقة أو دالة للحصول على المسارات الموجودة في الكود بشكل تلقائي؟
  12. لدي في قاعدة البيانات جدول users على سبيل المثال وأريد أن أحذف أحد المستخدمين من خلال id المستخدم وقمت بعمل الكود التالي للقيام بهذه المهمة: user = User.query.get(user_id) db.session.delete(user) ولكني أريد أن تتم عملية الحذف بدون تنفيذ إستعلام لجلب بيانات المستخدم، أي حذف المستخدم مباشرة من خلال id مثل جملة Delete في SQL تمامًا كيف أقوم بهذا الأمر؟
  13. أريد أن أقوم بإعادة كود xml عندما يتم طلب أحد المسارات، ولكن كيف يمكنني تغير نوع المحتوى المرجع، أي كيف أقوم بتغير قيمة الترويسة content-type إلى text/xml؟ هل يمكن التحكم في الـ headers في فلاسك Flask؟
  14. أحاول أن أقوم بعمل لوحة تحكم بإستخدام Flask و SQLAlchemy، وأريد أن أقوم بتمرير بعض المتغيرات إلى القالب بإستخدام render_template، لكن المشكلة هي أنه يتم تحويل كل أكواد HTML التي يتم تمريرها، وبالتالي كل الرموز < " ' > يتم تحويلها إلى HTML entities مثل ;it& كيف أقوم بتمرير كود HTML ليتم عرضه في القالب بدون أن يتم تحويله
  15. أريد أن أقوم بالحصول على العنوان الكامل URL لمسار route من خلال إستخدام الدالة url_for ولكن المشكلة أن هذا المسار يقوم بإستقبال معاملات، كالتالي: @app.route('/users/<user_id>') def index(user_id): print(user_id) return f"the ID is {user_id}" كيف يمكنني الحصول على عنوان URL للمسار السابق مع تمرير قيمة user_id؟
  16. أقوم حاليًا بعمل API لموقع مبني بإستخدام فلاسك Flask وأريد الحصول على ترويسة authorization header لكي أتأكد من أن المستخدم مصرح له بزيارة رابط معين، لكن لم طريقة تمكنني من الوصول إلى الترويسات headers. كيف يمكنني أن أحصل على http headers في فلاسك Flask؟
  17. أقوم بإستخدام SQLAlchemy ولكن أريد أن أقوم بتنفيذ جملة SQL خام بدون الإعتماد على التوابع الموجودة في SQLAlchemy حاولت أن أنفذ الكود التالي: connection = db.session.connection() connection.execute( <sql> ) ولكن لم يعمل الكود السابق، لذلك أريد أن أعرف كيف أقوم بتنفيذ جملة raw SQL في فلاسك Flask بإستخدام SQLAlchemy؟
  18. أريد الحصول على عنوان ip الخاص بأي مستخدم يزور مسار معين في تطبيق فلاسك Flask من أجل تخزين بعض المعلومات في عملية logging كيف أقوم بهذا الأمر؟ أنا أستخدم flask 1.1 و python 3.9
  19. عندما أقوم بتشغيل أي مشروع مبني بإستخدام فلاسك Flask يتم زيارة المشروع على الرابط localhost:5000 وبالطبع يمكنني أن أقوم بتغير هذا المنفذ (5000)، ولكن كيف يمكنني أن أزيله بالكامل حتى أتمكن من زيارة الموقع من خلال localhost مباشرة بدون تحديد منفذ معين؟
  20. أحاول أن أقوم بعمل موقع لإختصار الروابط من خلال فلاسك Flask، ولدي كود بسيط كالتالي: @app.route('/<id>') def redirect(): return 'redirect' كيف أقوم بتحويل المستخدم إلى موقع خارجي عند زيارة هذا المسار؟
  21. أقوم حاليًا بتطوير تطبيق فلاسك Flask، ولكن المشكلة هي أني أقوم بإعادة تشغيل ملف بايثون في كل مرة أقوم فيها بتغير الكود، وهذه العملية يتم تكرارها عدة مرات في كل دقيقة. ألا توجد طريقة لكي يتم إعادة تشغيل التطبيق عندما أقوم بتعديل أحد ملفات المشروع كما يحدث في برامج node.js عبر حزمة nodemon؟
  22. لدي مسار كالتالي: @user.route('/posts/<page>') def posts(page): pass وأريد ان أجعل قيمة page إختيارية، بحيث تكون القيمة الإفتراضية هي 1، كيف أقوم بهذا الأمر في فلاسك Flask؟ هل يجب أن أقوم بعمل مسار آخر ودالة أخرى للقيام بهذه المهمة؟
  23. عندما أقوم بإستعمال التابع flask.jsonify أو flask.dumps أحصل على نفس النتيجة في المتصفح، from flask import Flask, json, jsonify app = Flask(__name__) @app.route('/api', methods=['GET', 'POST']) def home(): content = { "username": "admin", "email": "admin@localhost", "id": 12 } return jsonify(content) # ما الفرق بين الطريقة السابقة والكود التالي؟ # return json.dumps(content) app.run() لذلك أريد أن أعرف الفرق بين إستخدام الطريقتين، ومتى أستعمل كل واحدة منهما؟
  24. أحاول أن أقوم بعمل API وأريد أن أحصل على البيانات المرسلة من العميل على شكل كود JSON في طلب من نوع POST، حاولت أن أستخدم الكود التالي: @app.route('/api/<id>', methods=['GET', 'POST']) def add_message(id): content = request.json() return content ولكن يبدو أن هذه الطريقة لا تعمل بشكل صحيح، كيف أحصل على كود JSON المرسل في طلب POST في Flask؟
  25. لدي ملف من نوع csv ويحتوي على بعض البيانات الخاصة بالمستخدمين، وأريد أن أعيد هذه البيانات على شكل كود JSON لإستخدامها في عمل API بسيط، حاولت أن أستخدم الكود التالي: @app.route('/', methods=['GET']) def parse_request(): data = [] input_file = csv.DictReader(open("csv.txt")) return input_file ولكن لم ينجح الأمر لأن فلاسك Flask لا يعيد أي بيانات إلا إن كانت من نوع نص أو قاموس, tuple أو Response instance أو WSGI callable. كيف يمكنني أن أقوم بإرسال محتوى الملف csv.txt كـ كود JSON؟
×
×
  • أضف...