如何在flask socket io中添加多个页面

问题描述

我使用flask_socketio创建了一个简单的聊天应用程序。该应用程序运行良好,但是我还想在主聊天页面之前添加一个登录页面,该页面要求用户提供姓名和其他内容,以便以后可以在聊天应用程序中使用。请告诉我如何添加多个页面,这些页面可以在服务器上由客户端操作。

服务器代码-

from flask import *
from flask_socketio import SocketIO,send

app = Flask(__name__)
app.config['SECRET_KEY'] = 'mysecret'
socketio = SocketIO(app,cors_allowed_origins='*')

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

@socketio.on('message')
def handleMessage(msg):
    print('Message: ' + msg)
    
    send(msg,broadcast=True)

if __name__ == '__main__':
    socketio.run(app)

homepage.html-

<!DOCTYPE html>
<html lang="en">
<head>
    
    <Meta charset="UTF-8">
    <Meta name="viewport" content="width=device-width,initial-scale=1.0">
    <title>Document</title>
    <link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.5.2/css/bootstrap.min.css" integrity="sha384-JcKb8q3iqJ61gNV9KGb8thSsNjpSL0n8PARn9HuZonixN0hoP+VmmDGMN5t9UJ0Z" crossorigin="anonymous">
    <style> 
        .centered {
        display: flex;
        align-items: center;
        justify-content: center;
        margin-top: 20%;
      }
    </style>

</head>



<body style="background-color: rgb(0,0);">
    
    <!-- navbar -->
    <nav class="navbar navbar-expand-lg navbar-light bg-light">
        <a class="navbar-brand" href="#">ChatBox</a>
        <button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarNavDropdown" aria-controls="navbarNavDropdown" aria-expanded="false" aria-label="Toggle navigation">
          <span class="navbar-toggler-icon"></span>
        </button>
        <div class="collapse navbar-collapse" id="navbarNavDropdown">
          <ul class="navbar-nav">
            <li class="nav-item active">
              <a class="nav-link" href="#">Home <span class="sr-only">(current)</span></a>
            </li>
            <li class="nav-item">
              <a class="nav-link" href="#">Log out</a>
            </li>
            <li class="nav-item">
              <a class="nav-link" href="#">login</a>
            </li>
            <li class="nav-item dropdown">
              <a class="nav-link dropdown-toggle" href="#" id="navbarDropdownMenuLink" role="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
                Settings
              </a>
              <div class="dropdown-menu" aria-labelledby="navbarDropdownMenuLink">
                <a class="dropdown-item" href="#">THEME</a>
                <a class="dropdown-item" href="#">Profile</a>
                <a class="dropdown-item" href="#">Help</a>
              </div>
            </li>
          </ul>
        </div>
      </nav>
      <!-- navbar -->
{%block mainbody%}
<form method="post">
    <div class="centered" >
        <button type="submit" style="width: 200px;height:100px" class="btn btn-light"><h4>Start Chat</h4> </button>
    </div>
</form>
{%endblock%}
<script src="https://code.jquery.com/jquery-3.5.1.slim.min.js" integrity="sha384-DfXdz2htPH0lsSSs5nCTpuj/zy4C+OGpamoFVy38MVBnE+IbbVYUew+OrCXaRkfj" crossorigin="anonymous"></script>
<script src="https://cdn.jsdelivr.net/npm/popper.js@1.16.1/dist/umd/popper.min.js" integrity="sha384-9/reFTGAW83EW2RDu2S0VKaIzap3H66lZH81PoYlFhbGU+6BZp6G7niu735Sk7lN" crossorigin="anonymous"></script>
<script src="https://stackpath.bootstrapcdn.com/bootstrap/4.5.2/js/bootstrap.min.js" integrity="sha384-B4gt1jrGC7Jh4AgTPSdUtOBvfO8shuf57BaghqFfPlYxofvL8/KUEfYiJOMMV+rV" crossorigin="anonymous"></script>
</body>
</html>

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)