דילוג לתוכן
  • דף הבית
  • קטגוריות
  • פוסטים אחרונים
  • משתמשים
  • חיפוש
  • חוקי הפורום
כיווץ
תחומים

תחומים - פורום חרדי מקצועי

💡 רוצה לזכור קריאת שמע בזמן? לחץ כאן!
  1. דף הבית
  2. תכנות
  3. עזרה ב-DASH (פייתון)

עזרה ב-DASH (פייתון)

מתוזמן נעוץ נעול הועבר תכנות
7 פוסטים 3 כותבים 214 צפיות
  • מהישן לחדש
  • מהחדש לישן
  • הכי הרבה הצבעות
התחברו כדי לפרסם תגובה
נושא זה נמחק. רק משתמשים עם הרשאות מתאימות יוכלו לצפות בו.
  • ל מנותק
    ל מנותק
    לי ראש
    כתב ב נערך לאחרונה על ידי
    #1

    אודה לכל עזרה.
    כתבתי קוד פשוט, כדי להתאמן, אבל אני לא מצליח לקבל תוצאה נורמלית; הייתי רוצה שה-DIV (עם הצבע) תמלא את כל העמוד ולא רק את השורה הראשונה. הנה הקוד:

    page1 = "BONJOUR"
    page2 = "AUREVOIR"
    menu = "menu"
    
    app = Dash(__name__, suppress_callback_exceptions = True)
    
    app.layout = html.Div(
        [
            dcc.Location(id='url', refresh=False),
    
            html.Div(id = 'current_page')
        ],
        id = 'root',
        style = {}
    )
    
    
    @callback(
        [Output('current_page', 'children'), Output('root', 'style')],
        Input('url', 'pathname')
    )
    def pages(pathname):
        if pathname == "/playersPage":
            background = {'background':'lightgreen'}
            return page1, background
        elif pathname == "/teamsPage":
            background = {'background':'lightblue'}
            return page2, background   
        else:
            background = {'background':'beige'}
            return menu, background
    
    
    app.run_server(debug=True, port=5000)
    

    והנה התוצאה:
    32a71f6f-4481-4ea1-96d6-72630532f9d8-image.png

    ElhananE תגובה 1 תגובה אחרונה
    0
    • ElhananE מנותק
      ElhananE מנותק
      Elhanan
      השיב ללי ראש ב נערך לאחרונה על ידי Elhanan
      #2

      @לי-ראש במבט ראשון, זה נראה שאתה לא כותב CSS כלשהוא שיגדיר את גודל הDIV, ומכיוון שכן, הוא מקבל את ערך הדיפולט (ברירת מחדל).
      נסה להוסיף style עם המאפיין height להגדרת גובה הDIV, משהו כזה:
      html.Div(id='current_page', style={'height': '100vh'}),
      וכן לDIV של הroot (או שתעטוף אותו בDIV אחר שמכיל את הערך של הגובה).

      כמו״כ, בקוד שצרפת נראה שכלל לא ייבאת את הספריות, אולי כדאי להוסיף אותם:

      import dash
      import dash_core_components as dcc
      import dash_html_components as html
      from dash.dependencies import Input, Output
      
      

      פורום איש את רעהו|חיתוך שירים|בלוג|מקצר קישורים|ביו

      ל 2 תגובות תגובה אחרונה
      3
      • ל מנותק
        ל מנותק
        לי ראש
        השיב לElhanan ב נערך לאחרונה על ידי
        #3

        @Elhanan
        עובד. תודה רבה.
        אתה ידוע מה ההסבר, למה ברירת המחדל אינה לתפוס את כל העמוד?

        (כן, ייבאתי את כל הספריות, רק לא העתקתי. אגב אפשר לייבא פשוט יותר:)

        from dash import Dash, html, dcc, Input, Output, callback
        
        ElhananE תגובה 1 תגובה אחרונה
        0
        • ל מנותק
          ל מנותק
          לי ראש
          השיב לElhanan ב נערך לאחרונה על ידי
          #4

          @Elhanan
          ואם כבר, האם תדע איך אני ממקם Dropdown באמצע השורה?
          ניסיתי ללא הצלחה עם:

          style = {'textAlign':'center'}
          

          וגם:

          style = {'align-items':'center'}
          

          גם עטיפה ב-html.Div לא עזרה.

          תגובה 1 תגובה אחרונה
          0
          • dovidD מנותק
            dovidD מנותק
            dovid ניהול
            כתב ב נערך לאחרונה על ידי dovid
            #5

            @לי-ראש אתה מנסה ללמוד html אבל דוקא מתוך פייתון.
            מה רע שתתחיל לכתוב html ולשאול שאלות ישירות עליו?
            הרי אחרי שתידע אתה תסתדר איך להכניס את זה לפייתון.

            מנטור אישי למתכנתים (ולא רק) – להתקדם לשלב הבא!

            בכל נושא אפשר ליצור קשר dovid@tchumim.com

            תגובה 1 תגובה אחרונה
            1
            • ל מנותק
              ל מנותק
              לי ראש
              כתב ב נערך לאחרונה על ידי
              #6

              לעת עתה אני לומד במסגרת קורס רחב על מדע הנתונים, ולימוד DASH (לצורך יצירת טבלאות ומערכות הצגה וויזואליות של הנתונים) הוא חלק צדדי של הענין. כרגע, אני לא מתעתד ללמוד פיתוח ווב, לכן אני לא לומד HTML בצורה מסודרת.

              תגובה 1 תגובה אחרונה
              0
              • ElhananE מנותק
                ElhananE מנותק
                Elhanan
                השיב ללי ראש ב נערך לאחרונה על ידי
                #7

                @לי-ראש כתב בעזרה ב-DASH (פייתון):

                אתה ידוע מה ההסבר, למה ברירת המחדל אינה לתפוס את כל העמוד?

                כברירת מחדל, אלמנט DIV תופס רק את הגודל שהוא צריך, אם זה היה תמונה בגודל של כל הדף - זה אכן היה תופס את כולו, כיוון שאצלך האלמנט מכיל שורה של טקסט, גובה הDIV הוא של שורת טקסט.

                @לי-ראש כתב בעזרה ב-DASH (פייתון):

                ואם כבר, האם תדע איך אני ממקם Dropdown באמצע השורה?

                כיוון שלא צירפת לקוד את אלמנט הDropdown, כך שאני לא יכול לבדוק לגביו.
                מה שכן, תוכל בDIV שמאחסן אותו להשתמש בCSS flexbox כדי לטפל בפריסה עם המאפיין justify-content.
                משהו כזה:

                app.layout = html.Div(
                    [
                        dcc.Location(id='url', refresh=False),
                        html.Div(
                            id='current_page',
                            style={'display': 'flex', 'justify-content': 'center', 'height': '100vh', 'background': 'beige'}
                        )
                    ],
                    id='root',
                    style={'height': '100%'}
                )
                
                

                פורום איש את רעהו|חיתוך שירים|בלוג|מקצר קישורים|ביו

                תגובה 1 תגובה אחרונה
                3

                בא תתחבר לדף היומי!
                • התחברות

                • אין לך חשבון עדיין? הרשמה

                • התחברו או הירשמו כדי לחפש.
                • פוסט ראשון
                  פוסט אחרון
                0
                • דף הבית
                • קטגוריות
                • פוסטים אחרונים
                • משתמשים
                • חיפוש
                • חוקי הפורום