开源 python 应用 开发(十四)python快速建设网站

 最近有个项目需要做视觉自动化处理的工具,最后选用的软件为python,刚好这个机会进行系统学习。短时间学习,需要快速开发,所以记录要点步骤,防止忘记。

 链接:

开源 python 应用 开发(一)python、pip、pyAutogui、python opencv安装-优快云博客

开源 python 应用 开发(二)基于pyautogui、open cv 视觉识别的工具自动化-优快云博客

开源 python 应用 开发(三)python语法介绍-优快云博客

开源 python 应用 开发(四)python文件和系统综合应用-优快云博客

开源 python 应用 开发(五)python opencv之目标检测-优快云博客

开源 python 应用 开发(六)网络爬虫-优快云博客

开源 python 应用 开发(七)数据可视化-优快云博客

开源 python 应用 开发(八)图片比对-优快云博客

开源 python 应用 开发(九)目标跟踪-优快云博客

开源 python 应用 开发(十)音频压缩-优快云博客

开源 python 应用 开发(十一)AI应用--百度智能云ASR短语音转文本-优快云博客

开源 python 应用 开发(十二)AI应用--百度智能云Agent聊天-优快云博客

开源 python 应用 开发(十三)AI应用--百度智能云TTS语音合成-优快云博客

开源 python 应用 开发(十四)python快速建设网站-优快云博客

 推荐链接:

开源 Arkts 鸿蒙应用 开发(一)工程文件分析-优快云博客

开源 Arkts 鸿蒙应用 开发(二)封装库.har制作和应用-优快云博客

开源 Arkts 鸿蒙应用 开发(三)Arkts的介绍-优快云博客

开源 Arkts 鸿蒙应用 开发(四)布局和常用控件-优快云博客

开源 Arkts 鸿蒙应用 开发(五)控件组成和复杂控件-优快云博客

 推荐链接:

开源 java android app 开发(一)开发环境的搭建-优快云博客

开源 java android app 开发(二)工程文件结构-优快云博客

开源 java android app 开发(三)GUI界面布局和常用组件-优快云博客

开源 java android app 开发(四)GUI界面重要组件-优快云博客

开源 java android app 开发(五)文件和数据库存储-优快云博客

开源 java android app 开发(六)多媒体使用-优快云博客

开源 java android app 开发(七)通讯之Tcp和Http-优快云博客

开源 java android app 开发(八)通讯之Mqtt和Ble-优快云博客

开源 java android app 开发(九)后台之线程和服务-优快云博客

开源 java android app 开发(十)广播机制-优快云博客

开源 java android app 开发(十一)调试、发布-优快云博客

开源 java android app 开发(十二)封库.aar-优快云博客

推荐链接:

开源C# .net mvc 开发(一)WEB搭建_c#部署web程序-优快云博客

开源 C# .net mvc 开发(二)网站快速搭建_c#网站开发-优快云博客

开源 C# .net mvc 开发(三)WEB内外网访问(VS发布、IIS配置网站、花生壳外网穿刺访问)_c# mvc 域名下不可訪問內網,內網下可以訪問域名-优快云博客

开源 C# .net mvc 开发(四)工程结构、页面提交以及显示_c#工程结构-优快云博客

​​​​​​开源 C# .net mvc 开发(五)常用代码快速开发_c# mvc开发-优快云博客

本章的内容为使用python flask 框架快速创建网站。

目录:

1.安装Flask

2.创建Flask应用

3.运行Flask应用

4.制作登录网站应用

一.安装Flask

首先需要安装Flask库:

pip install flask -i https://mirrors.aliyun.com/pypi/simple/

安装完成

二.创建Flask应用

创建一个名为 app.py 的文件:

代码如下

from flask import Flask

# 创建Flask应用实例
app = Flask(__name__)

# 定义路由和视图函数
@app.route('/')
def hello_world():
    return 'Hello, World!'

@app.route('/about')
def about():
    return '关于我们页面'

# 运行应用
if __name__ == '__main__':
    app.run(debug=True)

三.运行Flask应用

双击app.py会显示

页面输入

http://127.0.0.1:5000/

显示如下

四.制作登录网站应用

4.1  项目结构
my_flask_app/
├── app.py
├── templates/
│   ├── login.html
│   └── index.html
└── static/
    └── css/
        └── style.css

4.2  login.html源码

<!DOCTYPE html>
<html lang="zh-CN">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>登录</title>
    <link rel="stylesheet" href="{{ url_for('static', filename='css/style.css') }}">
</head>
<body>
    <div class="container">
        <h1>登录</h1>
        
        {% if error %}
        <div class="error">{{ error }}</div>
        {% endif %}
        
        <form method="POST" action="{{ url_for('login') }}">
            <div class="form-group">
                <label for="name">用户名:</label>
                <input type="text" id="name" name="name" required>
            </div>
            
            <div class="form-group">
                <label for="pwd">密码:</label>
                <input type="password" id="pwd" name="pwd" required>
            </div>   
            
            <button type="submit">登录</button>
        </form>
        
        <p class="demo-info">演示账号: 用户名=ZZ, 密码=123</p>
    </div>
</body>
</html>

4.3  index.html源码

<!DOCTYPE html>
<html lang="zh-CN">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>首页</title>
    <link rel="stylesheet" href="{{ url_for('static', filename='css/style.css') }}">
</head>
<body>
    <nav>
        <a href="{{ url_for('index') }}">首页</a>
        <a href="{{ url_for('logout') }}">退出登录</a>
    </nav>
    
    <div class="container">
        <h1>欢迎, {{ username }}!</h1>
        <p>您已成功登录系统。</p>
    </div>
</body>
</html>

4.4  style.css源码

body {
    font-family: 'Arial', sans-serif;
    line-height: 1.6;
    margin: 0;
    padding: 0;
    background-color: #f4f4f4;
    color: #333;
}

nav {
    background-color: #2c3e50;
    color: white;
    padding: 1rem;
}

nav a {
    color: white;
    text-decoration: none;
    margin-right: 1rem;
}

nav a:hover {
    text-decoration: underline;
}

.container {
    max-width: 400px;
    margin: 2rem auto;
    padding: 2rem;
    background-color: white;
    border-radius: 8px;
    box-shadow: 0 2px 5px rgba(0,0,0,0.1);
}

.form-group {
    margin-bottom: 1rem;
}

label {
    display: block;
    margin-bottom: 0.5rem;
    font-weight: bold;
}

input {
    width: 100%;
    padding: 0.5rem;
    border: 1px solid #ddd;
    border-radius: 4px;
    font-family: inherit;
    box-sizing: border-box;
}

button {
    background-color: #3498db;
    color: white;
    border: none;
    padding: 0.75rem 1.5rem;
    border-radius: 4px;
    cursor: pointer;
    width: 100%;
    font-size: 1rem;
}

button:hover {
    background-color: #2980b9;
}

.error {
    color: #e74c3c;
    background-color: #fadbd8;
    padding: 0.5rem;
    border-radius: 4px;
    margin-bottom: 1rem;
}

.demo-info {
    margin-top: 1.5rem;
    padding: 0.75rem;
    background-color: #f8f9fa;
    border-left: 4px solid #3498db;
    font-size: 0.9rem;
}

4.5  app.py源码

from flask import Flask, render_template, request, redirect, url_for, session

app = Flask(__name__)
app.secret_key = 'your_secret_key_here'  # 用于session加密,请在实际应用中更换

# 硬编码的用户名和密码(仅用于演示)
VALID_USERNAME = "ZZ"
VALID_PASSWORD = "123"

@app.route('/')
def home():
    # 如果用户已登录,重定向到首页
    if 'username' in session:
        return redirect(url_for('index'))
    # 否则显示登录页面
    return redirect(url_for('login'))

@app.route('/login', methods=['GET', 'POST'])
def login():
    if request.method == 'POST':
        username = request.form['name']
        password = request.form['pwd']
        
        # 验证用户名和密码
        if username == VALID_USERNAME and password == VALID_PASSWORD:
            # 在控制台打印用户名
            print(f"用户 {username} 已登录")
            
            # 将用户名存入session
            session['username'] = username
            
            # 登录成功,跳转到首页
            return redirect(url_for('index'))
        else:
            # 登录失败,返回错误信息
            error = "用户名或密码错误"
            return render_template('login.html', error=error)
    
    # GET请求,显示登录页面
    return render_template('login.html')

@app.route('/index')
def index():
    # 检查用户是否已登录
    if 'username' not in session:
        return redirect(url_for('login'))
    
    # 显示首页
    return render_template('index.html', username=session['username'])

@app.route('/logout')
def logout():
    # 从session中移除用户名
    session.pop('username', None)
    return redirect(url_for('login'))

if __name__ == '__main__':
    app.run(debug=True)

4.6显示效果

双击app.py,输入http://127.0.0.1:5000/,显示如下

点击登录后跳到index.html

python运行端打印效果如下

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值