生成一个有登录功能的宠物管理系统图片及代码
时间: 2024-02-17 21:04:42 浏览: 20
很抱歉,作为AI语言模型,我无法生成具体的代码实现和图片。但是我可以提供以下思路和参考:
1. 使用Python语言编写,使用Flask框架作为后端,前端可以使用HTML、CSS、JavaScript等技术实现。
2. 定义宠物数据模型,包括宠物的种类、名称、年龄、性别等基本信息,以及宠物主人的信息等。
3. 实现登录功能,可以使用Flask提供的Flask-Login插件,也可以自己编写登录逻辑。登录成功后,可以使用session来保存用户信息。
4. 实现宠物管理功能,包括宠物的添加、查看、编辑、删除等操作,可以使用SQLAlchemy来进行数据库操作。
5. 添加一些其他功能,比如宠物的喂养、健康状况的记录、宠物的照片上传等。
以下是一个简单的宠物管理系统的代码示例,供你参考:
```python
# 导入需要的库和模块
from flask import Flask, render_template, request, redirect, url_for, flash, session
from flask_login import LoginManager, login_user, logout_user, login_required, UserMixin
from flask_sqlalchemy import SQLAlchemy
from werkzeug.security import generate_password_hash, check_password_hash
# 创建Flask应用实例
app = Flask(__name__)
app.config['SECRET_KEY'] = 'thisisasecret'
app.config['SQLALCHEMY_DATABASE_URI'] = 'sqlite:///pets.db'
app.config['SQLALCHEMY_TRACK_MODIFICATIONS'] = False
db = SQLAlchemy(app)
# 创建登录管理器实例
login_manager = LoginManager()
login_manager.init_app(app)
login_manager.login_view = 'login'
# 定义用户数据模型
class User(UserMixin, db.Model):
id = db.Column(db.Integer, primary_key=True)
username = db.Column(db.String(50), unique=True)
password_hash = db.Column(db.String(100))
def set_password(self, password):
self.password_hash = generate_password_hash(password)
def check_password(self, password):
return check_password_hash(self.password_hash, password)
# 定义宠物数据模型
class Pet(db.Model):
id = db.Column(db.Integer, primary_key=True)
name = db.Column(db.String(50))
age = db.Column(db.Integer)
gender = db.Column(db.String(10))
breed = db.Column(db.String(50))
owner_id = db.Column(db.Integer, db.ForeignKey('user.id'))
def __repr__(self):
return '<Pet %r>' % self.name
# 定义登录页面和登录逻辑
@app.route('/login', methods=['GET', 'POST'])
def login():
if request.method == 'POST':
username = request.form['username']
password = request.form['password']
user = User.query.filter_by(username=username).first()
if user is not None and user.check_password(password):
login_user(user)
flash('登录成功!')
return redirect(url_for('index'))
else:
flash('用户名或密码错误!')
return render_template('login.html')
# 定义注销逻辑
@app.route('/logout')
@login_required
def logout():
logout_user()
flash('注销成功!')
return redirect(url_for('index'))
# 定义首页和宠物管理逻辑
@app.route('/')
@login_required
def index():
pets = Pet.query.filter_by(owner_id=session['user_id']).all()
return render_template('index.html', pets=pets)
@app.route('/add_pet', methods=['GET', 'POST'])
@login_required
def add_pet():
if request.method == 'POST':
name = request.form['name']
age = request.form['age']
gender = request.form['gender']
breed = request.form['breed']
pet = Pet(name=name, age=age, gender=gender, breed=breed, owner_id=session['user_id'])
db.session.add(pet)
db.session.commit()
flash('添加宠物成功!')
return redirect(url_for('index'))
return render_template('add_pet.html')
@app.route('/edit_pet/<int:pet_id>', methods=['GET', 'POST'])
@login_required
def edit_pet(pet_id):
pet = Pet.query.get_or_404(pet_id)
if request.method == 'POST':
pet.name = request.form['name']
pet.age = request.form['age']
pet.gender = request.form['gender']
pet.breed = request.form['breed']
db.session.commit()
flash('编辑宠物成功!')
return redirect(url_for('index'))
return render_template('edit_pet.html', pet=pet)
@app.route('/delete_pet/<int:pet_id>', methods=['GET', 'POST'])
@login_required
def delete_pet(pet_id):
pet = Pet.query.get_or_404(pet_id)
db.session.delete(pet)
db.session.commit()
flash('删除宠物成功!')
return redirect(url_for('index'))
# 定义用户加载函数
@login_manager.user_loader
def load_user(user_id):
return User.query.get(int(user_id))
# 创建数据库表格
with app.app_context():
db.create_all()
# 运行Flask应用
if __name__ == '__main__':
app.run(debug=True)
```
上面的代码实现了一个简单的宠物管理系统,具有登录、注销、添加、查看、编辑、删除宠物等功能。你可以根据自己的需求进行修改和扩展。