如何检查页面烧瓶的总浏览量?

How to check the total views on a page-flask?

我正在构建一个允许用户查看我的简历的应用程序。我想看看每个页面有多少浏览量以及来自哪个用户。

我有一次访问 table,我希望每次查看页面时都能将页面名称与用户 ID 一起存储。所以每条记录都是对该页面的一次新访问。

有什么建议或更好的方法吗?

model.py

class  User(UserMixin, db.Model):
    id = db.Column(db.Integer, primary_key=True)
    username = db.Column(db.String(64), index=True, unique=True)
    visits = db.relationship('Visit', backref='user', lazy='dynamic')
    password_hash = db.Column(db.String(128))

    def __repr__(self):
        return 'Username: {}'.format(self.username)

    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)

    def update_cv_looks(self):
        self.cv_looks += 1
        db.session.add(self)
        db.session.commit()


    def page_visits(self, pagename):
        list_of_visits = self.visits.filter_by(page_name=pagename).all()
        return len(list_of_visits)


class Visit(db.Model):
    id = db.Column(db.Integer, primary_key=True)
    user_id = db.Column(db.Integer, db.ForeignKey('user.id'))
    page_name = db.Column(db.String(25))

    def __repr__(self):
        return 'Page: {}'.format(self.page_name)

routes.py

@app.route('/')
@app.route('/cover')
@login_required
def cover():
    return render_template('cover.html', title='Cover Page')


@app.route('/index')
@login_required
def index():
    current_user.page_visits('index')
    return render_template(
        'index.html', title='Home Page')

将其放在访问 class 下的 model.py 中。

def update_visits(self, user_id, pagename):
self.user_id, self.page_name = user_id, pagename
db.session.add(self)
db.session.commit()

将其放在索引 routes.py 下。

v = Visit()
v.update_visits(user_id=current_user.id, pagename='index')