flask實戰-我的博客-視圖函數

視圖函數

在上面咱們建立了全部必須的模型類、模板文件和表單類。通過程序規劃和設計後,咱們能夠建立大部分視圖函數。這些視圖函數暫時沒有實現具體功能,僅渲染對應的模板,或是重定向到其餘視圖。以blog藍本爲例,以下所示:html

 

personalBlog/blueprints/blog.py: 建立視圖函數flask

 

#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。函數

除了視圖函數外,咱們還要添加一些基本的組件,好比自定義命令、錯誤處理函數(包含40四、500以及新添加的400錯誤處理函數)、使用函數(包含redirect_back()和is_safe_url())等。post

personalBlog/forms.py: 增長SettingForm()表單ui

 

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()
相關文章
相關標籤/搜索