小明: 嘿,小红,我最近在开发一个校友信息管理系统,想加入职业和通讯录功能,你能帮我吗?
小红: 当然可以!首先,我们需要设计数据库模型。假设我们使用Python的Flask框架和SQLAlchemy作为ORM。
from flask_sqlalchemy import SQLAlchemy
db = SQLAlchemy()
class User(db.Model):
id = db.Column(db.Integer, primary_key=True)
name = db.Column(db.String(80), nullable=False)
email = db.Column(db.String(120), unique=True, nullable=False)
profession = db.Column(db.String(120))
class Contact(db.Model):
id = db.Column(db.Integer, primary_key=True)
user_id = db.Column(db.Integer, db.ForeignKey('user.id'), nullable=False)
phone_number = db.Column(db.String(20))
address = db.Column(db.String(200))
user = db.relationship('User', backref=db.backref('contacts', lazy=True))
]]>
小明: 明白了,那我们怎么添加用户的职业信息呢?
小红: 我们可以在注册或编辑个人资料时添加职业信息。比如,当用户注册时,我们可以让他们填写职业信息。
@app.route('/register', methods=['GET', 'POST'])
def register():
form = RegistrationForm()
if form.validate_on_submit():
user = User(name=form.name.data, email=form.email.data, profession=form.profession.data)
db.session.add(user)
db.session.commit()
flash('恭喜你成功注册!')
return redirect(url_for('login'))
return render_template('register.html', title='Register', form=form)
]]>
小明: 看起来不错。那通讯录功能呢?
小红: 对于通讯录,我们可以创建一个新的页面,列出所有用户及其联系方式。同时,也可以让用户查看特定职业的人的联系信息。
@app.route('/contacts')
def contacts():
users = User.query.all()
return render_template('contacts.html', title='Contacts', users=users)
]]>