flask forum开发笔记(1)起始篇

暑假的时候用flask框架写了一个个人博客,完全参照《Flask Web开发》这本书一步步完成的,不得不说光头大叔这本书写的非常好,用一个完整简单的项目详细的将flask框架基本功能和知识传输给读者。个人博客的代码已经托管在GitHub上面,放一下链接https://github.com/RickyLin7/RL7-Blog,很简单的一个flask项目只是完成了比较基本的功能,自己加了两三个无关紧要的功能罢了。基本功能篇也就到这了,但是实际开发中,要完成的功能肯定更多,所以近期打算用flask框架完成一个较为复杂的论坛系统,再把flask框架过一遍,顺便写笔记,希望以后求职能够有所用处,整个过程都是边做边写,实时记录。
《Flask Web开发》这本书中的项目前端和后台是结合起来做的,但是工作中前端和后台应该是分开的,所以我这次先做好了前端的模板,然后再一步步的把功能添加进去。
OK,先创建一个标准的flask项目目录树


flask forum开发笔记(1)起始篇_第1张图片
BEEBB874-7CF5-43BD-884F-763323F6674F.png

接着把html文件中的静态文件路径用url_for( )函数的形式全都改掉,例如

  
  
  
  
  
  

记得有img路径的话也要全改掉。因为在flask程序中有一个static路由,它会将静态文件的引用变成一个特殊的路由,即/static/(默认设置下,Flask在程序根目录中名为static的子目录中寻找静态文件)。

然后把前端模板中的静态文件全都拖进static文件夹中,将html文件拖进templates文件夹中。简单的准备工作完成后,就该把flask程序在自己的电脑上运行起来了,在app.py文件中写入代码

from flask import Flask
from flask import render_template
app = Flask(__name__)

@app.route('/')
def index():
    return render_template('index.html')

if __name__=='__main__':
    app.run(debug=True)

然后打开终端进入虚拟环境运行python app.py

flask forum开发笔记(1)起始篇_第2张图片
1FF2BB8E-75B6-40F3-95BE-F18CCBFB8E1B.png

OK,打开浏览器访问 localhost:5000即可看见index.html了

flask forum开发笔记(1)起始篇_第3张图片
9080D384-8390-47DB-A9FC-7DF4E992426D.png

在app.py中可以看到引用的一个函数render_template()此函数为jinja2提供。这样,Flask在程序文件夹中的子文件夹中寻找模板。第一个参数是文件名,随后的参数都是键值对(name=name),表示模板中变量对应的真实值。下面顺便阅读下它的源码

def render_template(template_name, **context):
    """Renders a template from the template folder with the given
    context.

    :param template_name: the name of the template to be rendered
    :param context: the variables that should be available in the
                    context of the template.
    """
    current_app.update_template_context(context)
    return current_app.jinja_env.get_template(template_name).render(context)

好了,GG,起始篇就写到这了,因为是起始篇所以多写点,以后可能只写难点,不过也看时间,时间多就尽量多写点。

你可能感兴趣的:(flask forum开发笔记(1)起始篇)