美文网首页
快速入门

快速入门

作者: 漓江塔塔主 | 来源:发表于2019-03-28 11:36 被阅读0次

    1.学习一个新的东西,首先需要先去学会怎么导入他

    from flask import Flask

    2.hello world

    永远永远 要记得hello world

    from flask import Flask
    app = Flask(__name__)
    @app.route('/')
    def hello_world():
      return "hello world!"
    if __name__ ==' __main__':
      app.run()
    

    1需要注意的是,你所保存的python文件的名字,不能为flask。血泪教训,不然他就会在你的py文件之下寻找Flask,结果当然是没有。
    2 另外还有一个经常用到的东西 if name ==' main':
    简单来说,上面那个语句的功能就是来判断是否是在直接运行该.py文件
    如果要是直接运行当前python文件,那么它下面的方法就会被调用。而如果要是从别的文件调用这个文件,那么它下面的方法就不会触发。

    好了,既然注意事项讲完了,那么,就正式的来了解上面的那个小程序吧
    首先第一句自然不用说是导入。
    接下来第二行创建了一个实例。注意其中的参数是必须的,它代表应用模块或者包的名称。而本例中只有一个文件,自然就是_ name _。
    接下来第三行,第四行,第五行合起来看,稍微了解python的应该知道,第三行调用的是flask自己的一个装饰器,他的作用是告诉我们的app什么样的url才能触发下面的函数。而下面的函数自然不用我说,返回了熟悉的hello world。
    下面的run函数则是让我们写的小程序运行在我们的服务器上,欲关闭服务器,按 Ctrl+C。
    麻雀虽小 五脏俱全 几行代码便已经初具一个网页的雏形。

    3.路由

    接下来就稍微对路由系统进行一个简单的入门,并不要想着一开始就完全的掌握这个框架,是不现实的。
    路由系统,就像你家的路由器,对你想访问那个网页进行分类和导向。而flask里面的路由系统就是对你访问的url进行分类的一个系统。
    flask上面的路由系统主要靠route装饰器来将对应的函数绑定到对应的url上面,
    而上面的hello world 已经简单的将route装饰器的用法简单的讲了一下。比如你要专门做一个index的url可以这么写

    @app.route('/index')
    def index():
      return "index page"
    

    然而,仅仅有这些是不够的,程序员永远是不知满足的,静态的url并不能满足我们的要求,我们可以构造一种动态筛选url的方法。
    通过把 URL 的一部分标记为 <variable_name> 就可以在 URL 中添加变量。标记的 部分会作为关键字参数传递给函数。通过使用 <converter:variable_name> ,可以 选择性的加上一个转换器,为变量指定规则。请看下面的例子:

    @app.route('/user/<username>')
    def show_user_profile(username):
        # show the user profile for that user
        return 'User %s' % username
    

    此时有一个小问题,我们在用路由定位url的时候,url的尾部都没有添加斜杠,不添加斜杠,flask在访问这个url的时候,尾部会加上一个斜杠。而如果访问这个url的时候加上了一个斜杠,就会出现404错误,保证了url的唯一(虽然我也不太懂这块)。
    url的构建
    在flask中有一个url_for()函数,它用于构建指定函数的url。它将函数名称作为第一个参数。可以接收任意个关键字参数。每一个关键字参数对应url中的变量,未知变量将添加到url中作为查询参数
    此时问题就出现了,为什么要使用url_for()函数,将url写死不是更稳定吗

    1.反转通常比硬编码 URL 的描述性更好。
    2.你可以只在一个地方改变 URL ,而不用到处乱找。
    3.URL 创建会为你处理特殊字符的转义和 Unicode 数据,比较直观。
    4.生产的路径总是绝对路径,可以避免相对路径产生副作用。
    5.如果你的应用是放在 URL 根路径之外的地方(如在 /myapplication 中,不在 / 中), url_for() 会为你妥善处理。

    相关文章

      网友评论

          本文标题:快速入门

          本文链接:https://www.haomeiwen.com/subject/nwfbvqtx.html