引言
树莓派因其低功耗、低成本和高性价比的特点,成为学习嵌入式系统、Python编程以及搭建个人网站的热门选择。而Flask,作为Python中最流行的Web框架之一,以其简单、易用和功能丰富而著称。本文将带领新手们通过实战案例,在树莓派上轻松搭建一个简单的Flask网站。
环境准备
树莓派硬件
- 树莓派3B/3B+
- MicroSD卡(16GB以上)
- 电源
- 屏幕与键盘(可选)
软件环境
- Raspbian操作系统(可通过树莓派官网下载镜像)
- Python 3.7+
- Flask框架
安装Python和Flask
- 将Raspbian镜像写入MicroSD卡,并插入树莓派。
- 启动树莓派,按提示设置网络和用户信息。
- 在终端中运行以下命令安装Python 3:
sudo apt-get update
sudo apt-get install python3 python3-pip
- 安装Flask框架:
pip3 install flask
创建Flask项目
- 在树莓派上创建一个项目文件夹,例如
my_flask_project。 - 在项目文件夹中创建一个名为
app.py的Python文件。
from flask import Flask
app = Flask(__name__)
@app.route('/')
def hello_world():
return 'Hello, Flask on Raspberry Pi!'
if __name__ == '__main__':
app.run(host='0.0.0.0', port=80)
- 保存文件并退出。
启动Flask网站
- 在终端中切换到项目文件夹。
cd my_flask_project
- 运行以下命令启动Flask网站:
python3 app.py
- 打开浏览器,访问树莓派的IP地址(例如:
http://192.168.1.100/),即可看到欢迎页面。
实战案例:用户注册登录系统
1. 创建数据库
- 在树莓派上安装SQLite3数据库:
sudo apt-get install sqlite3
- 在项目文件夹中创建一个名为
database.py的Python文件。
import sqlite3
def create_table():
conn = sqlite3.connect('user.db')
c = conn.cursor()
c.execute('''CREATE TABLE IF NOT EXISTS users
(id INTEGER PRIMARY KEY AUTOINCREMENT,
username TEXT NOT NULL,
password TEXT NOT NULL)''')
conn.commit()
conn.close()
create_table()
2. 修改app.py
- 引入数据库模块:
from database import create_table
- 修改路由:
from flask import Flask, request, render_template, redirect, url_for
app = Flask(__name__)
@app.route('/')
def hello_world():
return 'Hello, Flask on Raspberry Pi!'
@app.route('/register', methods=['GET', 'POST'])
def register():
if request.method == 'POST':
username = request.form['username']
password = request.form['password']
# 保存用户信息到数据库
# ...
return redirect(url_for('login'))
return render_template('register.html')
@app.route('/login', methods=['GET', 'POST'])
def login():
if request.method == 'POST':
username = request.form['username']
password = request.form['password']
# 验证用户信息
# ...
return redirect(url_for('hello_world'))
return render_template('login.html')
if __name__ == '__main__':
app.run(host='0.0.0.0', port=80)
- 创建HTML模板:
register.html:
<!DOCTYPE html>
<html>
<head>
<title>Register</title>
</head>
<body>
<form method="post">
<label for="username">Username:</label>
<input type="text" id="username" name="username">
<label for="password">Password:</label>
<input type="password" id="password" name="password">
<button type="submit">Register</button>
</form>
</body>
</html>
login.html:
<!DOCTYPE html>
<html>
<head>
<title>Login</title>
</head>
<body>
<form method="post">
<label for="username">Username:</label>
<input type="text" id="username" name="username">
<label for="password">Password:</label>
<input type="password" id="password" name="password">
<button type="submit">Login</button>
</form>
</body>
</html>
总结
通过本文的实战案例教学,新手们可以轻松地在树莓派上搭建一个简单的Flask网站。当然,这只是一个入门级别的示例,实际开发中需要考虑更多的功能和安全问题。希望本文能为您的学习之路提供帮助。
