最近有个项目需要做视觉自动化处理的工具,最后选用的软件为python,刚好这个机会进行系统学习。短时间学习,需要快速开发,所以记录要点步骤,防止忘记。
链接:
开源 python 应用 开发(一)python、pip、pyAutogui、python opencv安装-优快云博客
开源 python 应用 开发(二)基于pyautogui、open cv 视觉识别的工具自动化-优快云博客
开源 python 应用 开发(三)python语法介绍-优快云博客
开源 python 应用 开发(四)python文件和系统综合应用-优快云博客
开源 python 应用 开发(五)python opencv之目标检测-优快云博客
开源 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运行端打印效果如下


被折叠的 条评论
为什么被折叠?



