zoukankan      html  css  js  c++  java
  • flask初识

    一,Flask介绍

       框架:对同一类型的项目共性代码的封装,称为框架。

      Flask是python编写的一类WEB框架,相较于其他框架来说。Flask框架更加轻量,灵活,但是对python代码能力要求高,Flask只提供了最基本web功能,其他功能需要开发者使用自己python代码实现,所以Flask项目质量由开发者能力决定的,但是,随着版本的迭代更新,许多社区,组织,三方开发了公共的Flask插件,开发者不再需要编写好多功能,转为, 下载,安装第三方插件。

     二,开始Flask

    1.下载:

    版本要求python3.7 + Flask1.1.1

    cmd下载:pip install flask==1.1.1 -i https//pypi.tuna.tsinghua.edu.cn/simple

    (在此提供三个国内的下载源:

    清华大学:https://pypi.tuna.tsinghua.edu.cn/simple
    阿里云:http://mirrors.aliyun.com/pypi/simple/
    豆瓣:http://pypi.douban.com/simple/

    也可以在pycharm中用pip下载

    或者在setting中在原有的python文件中添加flask包

    当然,更好的选择是下载anacoda后,安装虚拟环境后,在虚拟文件中安装使用flask(因为项目所需要的的python包不多,沙盒中可以只安装项目锁需要的包,后期的封装迁移耗费小):

    具体步骤为:anaconda官网中下载anaconda-->配置环境变量-->在cmd中创建虚拟环境:conda create -n 虚拟环境名 python=3.7(版本号)-->conda  active 虚拟环境名-->

    2.配置pycharm环境

    pycharm setting中interpreter选择刚才创建并激活的沙盒环境-->在终端通过pip下载安装flask:pip install flask =1.1.1 或者在setting中的当前沙盒环境中点加号添加flask。

    3.flask结构介绍:
    主路径下有:

    视图文件:实现功能,提供资料给用户看,模板文件:一个html文件,通过 视图函数的return render_template('模板文件名')与视图函数实现交互。models文件:通过 app.config['SQLAlCHEMY_DATABASE_URI'] = 'mysql + pymysql://root:密码/数据库名'配置数据库,通过 app .config[SQLAlCHEMY_TRACK_MULTIFICATIONS] = True 设置数据库的实时更新,通过 db = SQLAlchemy(app) 绑定数据库与实例化服务器对象,通过 class(db.Model):用来描述一个表结构,通过db.create_all()创建表。

    静态资源库:static ,子目录包括 css ,js ,img,plugins..,static;模板文件库:templates,静态问件与模板文件直接联系。

    4.开始第一个Flask案例:
    视图函数:index.py文件中:
    from flask import Flask,render_html

    app = Flask(__name__)"其中的__name__标识文件的一种运行状态"

    @app.route('路由')

    def show():

      message={name:'刘大猫',age:18}

      return render_html('模板的文件名',**locals())

    if __name__ == '__main__'

    app.run()

    template文件:
    <p>{{message.name}}</p>

    运行视图文件会返回一个url

    url:同一资源定位符:
    包括:协议部分:http//:,主机部分:网上的为域名,自己的一般为ip:port,因为未购买域名,其用来找到服务器,路由部分:用来找到服务器中的执行文件,对于视图函数,其为视图函数配置的路由,对于静态文件,为放在当前服务器的根目录的位置,根目录即为服务器启动的目录。启动web服务就是在服务器指定的目录下,启动服务,将这个目录作为根目录按照HTTP协议规则解析给用户。

  • 相关阅读:
    Discrete Logging
    P1378 油滴扩展
    P3390 【模板】矩阵快速幂
    RMQ算法
    P1372 又是毕业季I
    P1440 求m区间内的最小值
    高效判断素数方法
    阿尔贝喝我
    浙江大学PAT上机题解析之2-11. 两个有序链表序列的合并
    顺序队列之C++实现
  • 原文地址:https://www.cnblogs.com/liuyuchao/p/13849727.html
Copyright © 2011-2022 走看看