Невозможно открыть страницу, связанную через URL в файле Python - PullRequest
0 голосов
/ 16 ноября 2018

Я пытаюсь выяснить, почему URL-ссылка в моем файле python не открывает страницу, когда вы нажимаете на отображаемое изображение на странице запуска.Вместо этого отображается только пустая отображаемая страница.Файл Python, который я использую, приведен ниже.Обратите внимание, что я добавил другой файл python со ссылками, так как они в порядке и содержат конфиденциальную информацию.

#!/usr/bin/env python2
# -*- coding: utf-8 -*-
"""
Created on Fri Oct  5 16:21:08 2018

@author: wilpowa
"""
import webbrowser
import os
import re

# Styles and scripting for the page
main_page_head = '''
<head>
    <meta charset="utf-8">
    <title>Fresh Run!</title>

    <!-- Bootstrap 3 -->
    <link rel="stylesheet" href="https://netdna.bootstrapcdn.com/bootstrap/3.1.0/css/bootstrap.min.css">
    <link rel="stylesheet" href="https://netdna.bootstrapcdn.com/bootstrap/3.1.0/css/bootstrap-theme.min.css">
    <script src="http://code.jquery.com/jquery-1.10.1.min.js"></script>
    <script src="https://netdna.bootstrapcdn.com/bootstrap/3.1.0/js/bootstrap.min.js"></script>
    <style type="text/css" media="screen">
        body {
            padding-top: 80px;
        }
        #trailer .modal-dialog {
            margin-top: 200px;
            width: 640px;
            height: 480px;
        }
        .hanging-close {
            position: absolute;
            top: -12px;
            right: -12px;
            z-index: 9001;
        }
        #trailer-video {
            width: 100%;
            height: 100%;
        }
        .movie-tile {
            margin-bottom: 20px;
            padding-top: 20px;
        }
        .movie-tile:hover {
            background-color: #EEE;
            cursor: pointer;
        }
        .scale-media {
            padding-bottom: 56.25%;
            position: relative;
        }
        .scale-media iframe {
            border: none;
            height: 100%;
            position: absolute;
            width: 100%;
            left: 0;
            top: 0;
            background-color: white;
        }
    </style>
    <script type="text/javascript" charset="utf-8">
        // Pause the video when the modal is closed
        $(document).on('click', '.hanging-close, .modal-backdrop, .modal', function (event) {
            // Remove the src so the player itself gets removed, as this is the only
            // reliable way to ensure the video stops playing in IE
            $("#trailer-video-container").empty();
        });
        // Start playing the video whenever the trailer modal is opened
        $(document).on('click', '.movie-tile', function (event) {
            var trailerYouTubeId = $(this).attr('data-trailer-youtube-id')
            var sourceUrl = 'http://www.youtube.com/embed/' + trailerYouTubeId + '?autoplay=1&html5=1';
            $("#trailer-video-container").empty().append($("<iframe></iframe>", {
              'id': 'trailer-video',
              'type': 'text-html',
              'src': sourceUrl,
              'frameborder': 0
            }));
        });
        // Animate in the movies when the page loads
        $(document).ready(function () {
          $('.movie-tile').hide().first().show("fast", function showNext() {
            $(this).next("div").show("fast", showNext);
          });
        });
    </script>
</head>
'''

# The main page layout and title bar
main_page_content = '''
<!DOCTYPE html>
<html lang="en">
  <body>
    <!--  Shop Modal -->
    <div class="modal" id="trailer">
      <div class="modal-dialog">
        <div class="modal-content">
          <a href="#" class="hanging-close" data-dismiss="modal" aria-hidden="true">
            <img src="https://lh5.ggpht.com/v4-628SilF0HtHuHdu5EzxD7WRqOrrTIDi_MhEG6_qkNtUK5Wg7KPkofp_VJoF7RS2LhxwEFCO1ICHZlc-o_=s0#w=24&h=24"/>
          </a>
          <div class="scale-media" id="trailer-video-container">
          </div>
        </div>
      </div>
    </div>
    
    <!-- Main Page Content -->
    <div class="container">
      <div class="navbar navbar-inverse navbar-fixed-top" role="navigation">
        <div class="container">
          <div class="navbar-header">
            <a class="navbar-brand" href="#">Fresh Run Shops</a>
          </div>
        </div>
      </div>
    </div>
    <div class="container">
      {shop_tiles}
    </div>
  </body>
</html>
'''

# A single movie entry html template
shop_tile_content = '''
<div class="col-md-6 col-lg-4 shop_name text-center" data-trailer-youtube-id="{prod_link_id}" data-toggle="modal" data-target="#trailer">
    <img src="{prod_pic}" width="220" height="342">
    <h2>{shop_name}</h2>
    <h3>{prod_pric}</h3>
</div>
'''

def create_shop_tiles_content(shops):
    # The HTML content for this section of the page
    content = ''
    for shop in shops:
        # Extract the youtube ID from the url
        link_id_match = re.search(r'(?<=v=)[^&#]+', shop.name)
        link_id_match = link_id_match or re.search(r'(?<=be/)[^&#]+', shop.link)
        prod_link_id = link_id_match.group(0) if link_id_match else None

        # Append the tile for the movie with its content filled in
        content += shop_tile_content.format(
            shop_name=shop.name,
            prod_pic=shop.pic,
            prod_pric=shop.pric,
            prod_link_id=shop.link 
        )
    return content

def open_shop_page(shops):
  # Create or overwrite the output file
  output_file = open('fresh_run.html', 'w')

  # Replace the placeholder for the movie tiles with the actual dynamically generated content
  rendered_content = main_page_content.format(shop_tiles=create_shop_tiles_content(shops))

  # Output the file
  output_file.write(main_page_head + rendered_content)
  output_file.close()

  # open the output file in the browser
  url = os.path.abspath(output_file.name)
  webbrowser.open('file://' + url, new=2)# open in a new tab, if possible
#  webbrowser.open_new(+url)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...