Настройка папки:
Код: Выделить всё
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
-...
Я запускаю экспорт FLASK_APP=application.py, затем запускаю python3 -m flask и обслуживаю приложение на локальном хосте 5000 согласно:
Код: Выделить всё
* Serving Flask-SocketIO app "application.py"
* Forcing debug mode offЧто я делаю в index.html:
Код: Выделить всё
Vote
[list]
[/list]
Yes
No
Maybe
Код: Выделить всё
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);
});
});
Код: Выделить всё
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
Мобильная версия