• 从0开始使用python flask编写博客网站(2)


    好了上一篇文章中搭建好了完整的框架,以及可以访问一个“hello world”页面了。现在继续完善我们的博客程序。

    1.如法炮制,继续完善error和admin的路由。

    首先写把404和500的网页写好放到templates/errors中。然后在error的文件夹中新建handlers.py 文件,在这里写错误的路由

    from flask import render_template
    from app.errors import bp
    
    @bp.app_errorhandler(404)
    def not_found_error(error):
        return render_template("errors/404.html"), 404
    
    @bp.app_errorhandler(500)
    def internal_error(error):
        return render_template("errors/500.html"), 500
    
    

    随后和主页面一样,在error的__init__.py文件导入蓝图和路由

    from flask import Blueprint
    
    bp = Blueprint("errors", __name__)
    
    from app.errors import handlers
    

    最后在creat_app()中绑定蓝图

        from app.errors import bp as errors_bp
        app.register_blueprint(errors_bp)
    

    admin目录也同主页面目录一样的增加蓝图同时在creat_app()函数中绑定蓝图

    2.设计数据库

    一个博客需要记录什么数据呢?id要有个吧,还有标题,内容,文章的时间,阅读的次数。还有文章的标签。
    首先在app目录下新建models.py

    from app import db
    from datetime import datetime
    
    class Page(db.Model):
        _tablename_ = "pages"
        id = db.Column(db.Integer, primary_key=True)
        title = db.Column(db.String(20))
        body = db.Column(db.Text)
        timestamp = db.Column(db.DataTime, index=True, default=datetime.utcnow)
        view_num = db.Column(db.Integer, default=0)
    
        def __repr(self):
            return "<Page {}>".format(self.title)
    

    其次在app/_init.py文件中引入model文件

    from app import models
    

    最后迁移数据库

    flask db init
    
    flask db migrate
    
    flask db upgrade
    

    不出意外的话会新建一个page表。

    总结

    使用orm可以轻易的换数据库而不需要改变代码。但是它对于复杂的查询与插入到底是提高效率还是降低效率呢。自动化程度高以后,对于数据库底层是否还有必要了解?

  • 相关阅读:
    MySQL JDBC驱动 01 Class.forName
    Sybase性能调试 Statistics
    MySQL InnoDB存储引擎 MySQL介绍
    Sybase性能调试 dbcc trace
    ASP.NET页面的生命周期
    注册JavaScript?
    泛型
    静态类和静态类成员
    构造函数
    MYSQL常用操作
  • 原文地址:https://www.cnblogs.com/jikeboy/p/9827613.html
Copyright © 2020-2023  润新知