馒头框架(Flask-MongoEngine)是一个结合了Flask和MongoEngine的Python Web框架,它使得使用MongoDB数据库进行Web开发变得更加简单。本文将带你通过一个实战案例,学习如何使用馒头框架搭建一个简单的登录界面。
一、准备工作
在开始之前,请确保你已经安装了以下依赖:
- Python 3.x
- Flask
- Flask-MongoEngine
- PyMongo
你可以使用以下命令进行安装:
pip install Flask Flask-MongoEngine pymongo
二、创建项目结构
创建一个名为login_project的目录,并在其中创建以下文件和文件夹:
login_project/
│
├── app.py
├── requirements.txt
└── templates/
└── login.html
在requirements.txt文件中添加以下内容:
Flask==1.1.2
Flask-MongoEngine==0.6.0
pymongo==3.12.0
三、配置数据库
首先,我们需要配置MongoDB数据库。在本例中,我们将使用MongoDB的本地实例。打开app.py文件,添加以下代码:
from flask import Flask, render_template, request, redirect, url_for
from flask_mongoengine import MongoEngine
from models import User
app = Flask(__name__)
app.config['MONGODB_SETTINGS'] = {
'db': 'login_db',
'host': 'localhost',
'port': 27017
}
db = MongoEngine(app)
四、创建用户模型
在models.py文件中,创建一个名为User的MongoEngine模型:
from mongoengine import Document, StringField, BooleanField
class User(Document):
username = StringField(required=True, unique=True)
password = StringField(required=True)
is_active = BooleanField(default=True)
五、创建登录界面
在templates/login.html文件中,创建一个简单的登录表单:
<!DOCTYPE html>
<html lang="zh-CN">
<head>
<meta charset="UTF-8">
<title>登录</title>
</head>
<body>
<h1>登录</h1>
<form action="{{ url_for('login') }}" method="post">
<div>
<label for="username">用户名:</label>
<input type="text" id="username" name="username" required>
</div>
<div>
<label for="password">密码:</label>
<input type="password" id="password" name="password" required>
</div>
<div>
<button type="submit">登录</button>
</div>
</form>
</body>
</html>
六、实现登录逻辑
在app.py文件中,添加以下代码:
from flask import Flask, render_template, request, redirect, url_for
from flask_mongoengine import MongoEngine
from models import User
app = Flask(__name__)
app.config['MONGODB_SETTINGS'] = {
'db': 'login_db',
'host': 'localhost',
'port': 27017
}
db = MongoEngine(app)
@app.route('/')
def index():
return render_template('login.html')
@app.route('/login', methods=['POST'])
def login():
username = request.form.get('username')
password = request.form.get('password')
user = User.objects(username=username).first()
if user and user.password == password:
return redirect(url_for('success'))
else:
return redirect(url_for('index'))
@app.route('/success')
def success():
return '登录成功!'
if __name__ == '__main__':
app.run(debug=True)
七、运行项目
在终端中,切换到login_project目录,并运行以下命令:
python app.py
打开浏览器,访问http://127.0.0.1:5000/,你将看到一个简单的登录界面。
八、总结
通过本文的实战案例,你学会了如何使用馒头框架搭建一个简单的登录界面。在实际项目中,你可以根据需求对登录界面进行美化、添加验证码等功能。希望本文对你有所帮助!
