在上面咱們建立了全部必須的模型類、模板文件和表單類。通過程序規劃和設計後,咱們能夠建立大部分視圖函數。這些視圖函數暫時沒有實現具體功能,僅渲染對應的模板,或是重定向到其餘視圖。以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()