好的,我可以为您提供一些Python Flask的代码,以创建一个带有登录界面、欢迎信息和两个选项卡的网站。在此之前,您需要确保已经安装了Flask和其他必要的库。首先,您需要创建一个名为app.py的Python文件,并将以下代码复制到其中。
from flask import Flask, render_template, request, session, redirect, url_for
import pandas as pd
import os
app = Flask(__name__)
app.secret_key = os.urandom(24)
# mock user database
users = {'user1': 'password1', 'user2': 'password2'}
# mock data for table
data = {'Name': ['Alice', 'Bob', 'Charlie', 'David'], 'Age': [25, 30, 35, 40], 'City': ['New York', 'Paris', 'London', 'Tokyo']}
df = pd.DataFrame(data)
def home():
if 'username' in session:
return render_template('home.html', name=session['username'])
return redirect(url_for('login'))
def login():
if request.method == 'POST':
username = request.form['username']
password = request.form['password']
if username in users and users[username] == password:
session['username'] = username
return redirect(url_for('home'))
else:
return render_template('login.html', error='Invalid username or password')
return render_template('login.html')
def logout():
session.pop('username', None)
return redirect(url_for('login'))
def kline():
if 'username' in session:
return render_template('kline.html', name=session['username'])
return redirect(url_for('login'))
def table():
if 'username' in session:
return render_template('table.html', name=session['username'], data=df.to_html(index=False))
return redirect(url_for('login'))
if __name__ == '__main__':
app.run(debug=True)
在这个代码中,我们使用了Flask框架,并创建了一个名为app的应用程序对象。我们还设置了一个秘密密钥,以便对用户会话进行加密。我们还创建了一个名为users的字典,其中包含了模拟的用户和密码。我们还创建了一个名为df的DataFrame,其中包含了模拟的表格数据。我们使用了四个路由函数。第一个路由函数是主页,如果用户已经登录,则显示欢迎信息和两个选项卡。如果用户没有登录,则重定向到登录页面。第二个路由函数是登录页面,它接受POST请求以验证用户凭据。如果用户凭据有效,则将用户名称保存在会话中,并将其重定向到主页。否则,将显示错误消息。第三个路由函数是注销html登录后显示用户名,它删除会话中的用户名,并将用户重定向到登录页面。第四个路由函数是kline,它显示k线图选项卡。如果用户没有登录,则重定向到登录页面。第五个路由函数是table,它显示表格选项卡。如果用户没有登录,则重定向到登录页面。接下来,您需要创建一个名为templates的文件夹,并在其中创建三个名为home.html、login.html和kline.html的HTML文件。这些文件的内容如下:
上面的废话不用看,直接建3个html文件来匹配flask的路由。
home.html
html
<html>
<head>
<title>Hometitle>
head>
<body>
<h1>Welcome {{ name }}h1>
<ul>
<li><a href="{{ url_for('kline') }}">K-Linea>li>
<li><a href="{{ url_for('table') }}">Tablea>li>
ul>
<a href="{{ url_for('logout') }}">Logouta>
body>
html>
login.html
html
<html>
<head>
<title>Logintitle>
head>
<body>
{% if error %}
<p>{{ error }}p>
{% endif %}
<form method="POST" action="{{ url_for('login') }}">
<label>Username:label>
<input type="text" name="username"><br>
<label>Password:label>
<input type="password" name="password"><br>
<input type="submit" value="Login">
form>
body>
html>
kline.html:
html
<html>
<head>
<title>K-Linetitle>
head>
<body>
<h1>K-Lineh1>
<p>Hello {{ name }}, this is the K-Line page.p>
<a href="{{ url_for('home') }}">Homea>
body>
html>
table.html:
html
<html>
<head>
<title>Tabletitle>
head>
<body>
<h1>Tableh1>
<p>Hello {{ name }}, this is the table page.p>
<table>
{{ data | safe }}
table>
<a href="{{ url_for('home') }}">Homea>
body>
html>
这里要注意的是,模板要单独文件夹存放。
启动app.py之后,访问地址就可以看到效果啦。
我们用写好的用户名/密码字典来进行登录使用。
登录成功后,就看到欢迎您 user1,还有我们预设的两个菜单。k线图以及买点表格。
到此,这里整个应用基本是一遍过,启动成功。算上所有时间,不到5分钟,即可完成简易网页的搭建。
三、总结
虽然Bito使用的只是GPT3版本,但是它胜在实用html登录后显示用户名,代码准确性高,以及不用魔法,并且在网页端,也可以使用,代码能力要比claude强,无限使用要比chatgpt4更加方便。可以说,写代码方面确实有独特的能力。
最后我也替不会代码的缠友一些问题,比如他会不会通达信。
没想到这也难不住它,快速的给了答案。
所以一个免费的写代码大佬帮助,他不香吗?赶紧试试吧。
版权声明
本文仅代表作者观点。
本文系作者授权发表,未经许可,不得转载。
发表评论