Flask загружает один и тот же файл index.js при запуске из другого проекта.Python

Программы на Python
Ответить
Anonymous
 Flask загружает один и тот же файл index.js при запуске из другого проекта.

Сообщение Anonymous »

При попытке запустить приложение flask локально я столкнулся со следующей проблемой: я использовал URL_FOR и напрямую пытался указать путь к моему файлу index.js, но он всегда загружает другой index.js, когда я пытаюсь запустить приложение flask локально.

Настройка папки:

Код: Выделить всё

folder with source code of sample projects from a course i'm doing
-project1
--templates
---index.html
--static
---index.js
--application.py
-project2
--templates
---index.html
--static
---index.js
--application.py
-project3
--templates
---index.html
--static
---index.js
--application.py
-...
--> Допустим, я сейчас в проекте2 в своем терминале.
Я запускаю экспорт FLASK_APP=application.py, затем запускаю python3 -m flask и обслуживаю приложение на локальном хосте 5000 согласно:

Код: Выделить всё

* Serving Flask-SocketIO app "application.py"
* Forcing debug mode off
До сих пор выглядело нормально. Однако вот что интересно: когда я перехожу по адресу http://127.0.0.1:5000/ и проверяю, он всегда ссылается на index.js в моей папке /project1/static.

Что я делаю в index.html:

Код: Выделить всё





Vote


[list]
[/list]

Yes
No
Maybe


Как выглядит мой index.js:

Код: Выделить всё

document.addEventListener('DOMContentLoaded', () => {

// Connect to websocket
var socket = io.connect(location.protocol + '//' + document.domain + ':' + location.port);

// When connected, configure buttons
socket.on('connect', () => {

// Each button should emit a "submit vote" event
document.querySelectorAll('button').forEach(button => {
button.onclick = () => {
const selection = button.dataset.vote;
socket.emit('submit vote', {'selection': selection});
};
});
});

// When a new vote is announced, add to the unordered list
socket.on('announce vote', data => {
const li = document.createElement('li');
li.innerHTML = `Vote recorded: ${data.selection}`;
document.querySelector('#votes').append(li);
});
});
Как выглядит мой файл application.py:

Код: Выделить всё

import os
import requests

from flask import Flask, jsonify, render_template, request
from flask_socketio import SocketIO, emit

app = Flask(__name__)
app.config["SECRET_KEY"] = os.getenv("SECRET_KEY")
socketio = SocketIO(app)

@app.route("/")
def index():
return render_template("index.html")

@socketio.on("submit vote")
def vote(data):
selection = data["selection"]
emit("announce vote", {"selection": selection}, broadcast=True)

if __name__ == '__main__':
app.run()
Ответы с моей стороны
  • Я сам нашел забавный способ исправить это: если я просто переименую его в «main.js» и ссылаюсь на него, это сработает.
Вопросы
  • Есть идеи, что здесь может быть не так? Я неправильно ссылаюсь на index.js?
  • Не может быть такого, что вы просто не можете иметь несколько файлов index.js в одной родительской папке… верно?


Подробнее здесь: https://stackoverflow.com/questions/552 ... nt-project
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Python»