Web2Py: أين يجب أن أقوم بتخزين الملفات الخاصة ، الخاصة بالتطبيق؟

StackOverflow https://stackoverflow.com/questions/4004794

  •  25-09-2019
  •  | 
  •  

سؤال

لقد بدأت للتو العمل على Web2Py. أنا شخصياً أجد أنه من الأسهل أن أتعلم من Django.

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

الكود الخاص بي هو:

import cPickle as pickle
def index():
    """
    Load the file into memory and message the number of entries
    """
    f = open('tables.pkl','rb')
    session.tables = pickle.load(f)
    f.close()
    terms = len(session.tables.keys())
    message = 'The total entries in table = ' + str(terms)
    return dict(message=message) 

كما ترون ، لقد وضعت الكود في الفهرس () لتحميله عند بدء التشغيل. في الوقت الحالي ، أستخدم المسار المطلق حتى الموقع الفعلي لملف "tables.pkl". أين يجب أن أضعه في مجلد التطبيق الخاص بي.

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

هل كانت مفيدة؟

المحلول

اعتقد ان نشر سيكون المجلد مكانًا جيدًا لهذا الغرض. يمكنك الحصول على المسار المطلق مع:

import os
fp = os.path.join(request.folder,'private','tables.pkl')    

سأستخدم مخبأ بدلاً من الجلسة إذا لم يكن الملف فريدًا لكل مستخدم.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top