Как я узнаю, что в моем приложении Electron JS работает мой скрипт python, который открывает браузер на устройстве, на котором он запущен - PullRequest
0 голосов
/ 31 марта 2020

Итак, у меня есть электронное приложение, в котором есть кнопка.

<!DOCTYPE html>
        <html>
        <head>
            <link rel="stylesheet" type="text/css" href="https://cdnjs.cloudflare.com/ajax/libs/semantic-ui/2.4.1/semantic.min.css">
            <title>Home</title>
        </head>
        <body>
            <div class="ui main text container segment">
                <div class="ui huge header">Click Submit To Go To <span style="color: red;">Index Page</span></div>
                <form class="ui form">
                    <a href="http://127.0.0.1:5000/?" class="ui inverted blue big button">Submit</a>
                </form>
                <!-- this is to see the data i passed through to see if the function gets all the right information -->
                <p>{{n}}</p>
                <h1>{{k}}</h1>
            </div>
        </body>
    </html>

Когда запускается электронное приложение, у меня есть файл server.py, который запускается в фоновом режиме:

app.on('ready', function() {
  server = require('child_process').spawn('python', ['../engine/server.py']);
});

, и этот сервер сделан с flask:

sys.path.insert(0, "/usr/local/lib/python3.7/site-packages")
from flask import Flask, render_template, request

app = Flask(__name__,template_folder='../gui')
@app.route('/')
def index():
    return render_template('index.html')

После того, как кнопка нажата, она указывает на http://127.0.0.1: 5000 / ? где сервер работает с flask. Оттуда вы заполняете форму и нажимаете submit, которая отправляет POST-запрос.

<!DOCTYPE html>
        <html>
        <head>
            <link rel="stylesheet" type="text/css" href="https://cdnjs.cloudflare.com/ajax/libs/semantic-ui/2.4.1/semantic.min.css">
            <title>URL Page</title>
        </head>
        <body>
            <div class="ui main text container segment">
                <div class="ui huge header">Enter website name and click submit</div>
                <form name="urlform" action="." class="ui form" method="POST">
                    <div class="field">
                        <label>Web Site Name</label>
                        <input name="website_name"  type="text" placeholder="eg. google">
                    </div>
                    <input class="ui inverted blue big button" type="submit">
                </form>
            </div>
        </body>
    </html>

После того, как почтовый запрос будет обработан, он запускает функцию:

@app.route('/', methods=['POST'])
def get_gavlue: 
    keys = {
        "website_name": request.form['website_name']     
    }
    json_data = json.dumps(keys)
    driver = webdriver.Chrome('../engine/chromedriver')
    driver.get('https://www.{0}.com'.format(k['website_name'])) # lets say user typed in google

Что это должно сделать После того, как пользователь щелкнет кнопку «Отправить» в форме, он должен запустить этот пост-запрос, а затем получить значение имени_сайта-сайта и использовать драйвер, чтобы открыть chrome и go для этого веб-сайта. Я протестировал драйвер и открыл google chrome, и он работает, когда скрипт запускается сам по себе, но когда я хочу запустить скрипт при использовании его с веб-приложением, он не работает, и я не уверен, почему , Мне было интересно, если кто-то может помочь мне с этим. Спасибо!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...