سؤال

أنا أستخدم python وCherryPy لإنشاء موقع ويب داخلي بسيط يستخدمه حوالي شخصين.أستخدم خادم الويب المدمج مع CherryPy.quickstart ولم أعبث مطلقًا بملفات التكوين.لقد قمت مؤخرًا بتغيير الأجهزة، لذلك قمت بتثبيت أحدث إصدار من Python وcherrypy وعندما أقوم بتشغيل الموقع يمكنني الوصول إليه من المضيف المحلي:8080 ولكن ليس من خلال IP أو اسم جهاز windows.قد يكون السبب اختلافًا في تكوين الجهاز أو إصدارًا أحدث من CherryPy أو Python.هل لديك أي أفكار حول كيفية الارتباط بعنوان IP الصحيح؟

يحرر:للتوضيح، ليس لدي حاليًا ملف تكوين على الإطلاق.

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

المحلول

يعتمد ذلك على كيفية تشغيلك لـ Cherrypy init.

إذا كنت تستخدم بناء جملة Cherrypy 3.1، فسيقوم بذلك:

cherrypy.server.socket_host = 'www.machinename.com'
cherrypy.engine.start()
cherrypy.engine.block()

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

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

نصائح أخرى

server.socket_host: '0.0.0.0'

...سوف تعمل أيضا.هذا هو IPv4 INADDR_ANY، وهو ما يعني "الاستماع على جميع الواجهات".

في ملف التكوين، بناء الجملة هو:

[global]
server.socket_host: '0.0.0.0'

في الكود:

cherrypy.server.socket_host = '0.0.0.0'
import cherrypy

class HelloWorld(object):
    def index(self):
        return "Hello World!"
    index.exposed = True

cherrypy.server.socket_host = '0.0.0.0' # put it here 
cherrypy.quickstart(HelloWorld())
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top