Приложение для чата Python Flask-socketio
У меня есть приложение чата с использованием flask-socketio, но я хочу изменить свое имя пользователя на ME на моем экране, если я отправлю сообщение другому человеку, и этот человек увидит мое имя пользователя на экране. Я не знаю, как это сделать. это.. Я новичок в Python и JavaScript.
**python file**
@app.route('/group-chat')
def chat():
global username
con = sqlite3.connect('webprog.db')
cmd=con.cursor()
sql=("SELECT *FROM history")
cmd.execute(sql)
history = [dict(username=row[1],msg=row[2])for row in cmd.fetchall()]
return render_template('Groupchat.html',history=history,user=username)
#event
@socketio.on( 'my event' )
def handle_my_custom_event( json ):
con = sqlite3.connect('webprog.db')
cmd= con.cursor()
sql=("INSERT INTO history(user,msg) VALUES(?,?)")
cmd.execute(sql,[str((json['user_name'])),str((json['message']))])
con.commit()
cmd.close()
print( 'recived my event: ' + str(json))
socketio.emit( 'my response', json)
if __name__ == '__main__':
socketio.run(app,debug=True)
**HTMLt**
<script>
var socket = io.connect( 'http://' + document.domain + ':' + location.port )
var user='{{user}}'
// broadcast a message
socket.on( 'connect', function() {
socket.emit( 'my event', {
data: 'User Connected'
} )
var form = $( 'form' ).on( 'submit', function( e ) {
e.preventDefault()
let user_input = $( 'input.message' ).val()
socket.emit( 'my event', {
user_name :user,
message : user_input
})
// empty the input field
$( 'input.message' ).val( '' ).focus()
} )
} )
// capture message
socket.on( 'my response', function( msg ) {
console.log( msg )
if( typeof msg.user_name !== 'undefined' ) {
$( 'h1' ).remove()
$( 'div.message_holder' ).append( '<div class="msg_bbl"><b style="color: #000">'+msg.user_name+'</b> '+msg.message+'</div>' )
}
} )
</script>