zoukankan      html  css  js  c++  java
  • flask实战-个人博客-视图函数

    视图函数

    在上面我们创建了所有必须的模型类、模板文件和表单类。经过程序规划和设计后,我们可以创建大部分视图函数。这些视图函数暂时没有实现具体功能,仅渲染对应的模板,或是重定向到其他视图。以blog蓝本为例,如下所示:

    personalBlog/blueprints/blog.py: 创建视图函数

    #encoding=utf-8
    
    from flask import render_template, Blueprint
    
    blog_bp = Blueint('blog', __name__)
    
    @blog_bp.route('/')
    def index():
        return render_template('blog/index.html')
    
    @blog_bp.route('/about')
    def about():
        return render_template('blog/about.html')
    
    @blog_bp.route('/category/<int:category_id>')
    def show_category(category_id):
        return render_template('blog/category.html')
    
    @blog_bp.route('/post/<int:post_id>', methods = ['GET', 'POST'])
    def show_post(post_id):
        return render_template('blog/post.html')

    和blog蓝本类似,我们在blueprints子包中创建了auth.py、admin.py脚本,这些脚本中分别创建了auth和admin蓝本,蓝本实例的名称分别为auth_bp和admin_bp。

    除了视图函数外,我们还要添加一些基本的组件,比如自定义命令、错误处理函数(包含404、500以及新添加的400错误处理函数)、使用函数(包含redirect_back()和is_safe_url())等。

    personalBlog/forms.py: 增加SettingForm()表单

    class SettingForm(FlaskForm):
        name = StringField('Name', validators = [DataRequired(), Length(1, 70)])
        blog_title = StringField('Blog Title', validators = [DataRequired(), Length(1, 60)])
        blog_sub_title = StringField('Blog Sub Title', validators = [DataRequired(), Length(1, 100)])
        about = CKEditorField('About Page', validators = [DataRequired()])
        submit = SubmitField()
  • 相关阅读:
    随机变量数学期望的一个实例
    Form 对象的集合
    并排两个对象对不齐如何解决
    打开PPT 提示安装,非要取消才能显示PPT
    ATL 工程下添加右击菜单
    uva 10273 Eat or Not to Eat?
    python3根据地址批量获取百度地图经纬度
    <数据挖掘导论>读书笔记4--其他分类技术
    <数据挖掘导论>读书笔记6关联分析的高级概念
    <数据挖掘导论>读书笔记5关联分析的基本概念和算法
  • 原文地址:https://www.cnblogs.com/xiaxiaoxu/p/10841519.html
Copyright © 2011-2022 走看看