Flask基础(1)

1.什么是flask框架?

Flask是使用Python实现的一种web框架。其显著特征是:它是一个‘微’框架,‘微’意味着旨在保持核心的简单,但同时又易于扩展。默认情况下,Flask不包含数据库抽象层、表单验证,或者是其它任何已有多种库可以胜任的功能。然而,Flask支持用扩展来给应用添加这些功能。众多的扩展提供了数据库集成、表单验证、上传上传处理、各种各样的开放认证技术等功能。Flask的这些特征,使得它在web开放方面变得非常流行。
前面我们有学到django框架,那么这两种框架有哪些区别呢?
django—> 完善完整高集成的框架
flask—–>不包含数据库抽象层的微框架,database和templates需要自己去装。

2.Flash环境搭建

(1)进入window命令行:

     创建虚拟环境virtualenv --no-site-packages flaskenv
     cd flaskenv
     cd Script

(2)启动虚拟环境:

     activate

(3)安装flask:(可以安装在虚拟环境外面或者里面)

    pip install flask

(4)打开pycharm,新建flask框架的工程:(这点和django不一样噢!)
新建工程后,会默认生产一个输出hello world的程序

(5)运行flask
python app.py ———–>启动默认127.0.0.1:5000

(6)配置相应的运行参数
这里写图片描述

(7) 安装Flask-Script
Flask-Script 是一个 Flask 扩展, 为 Flask 程序添加了一个命令行解析器。

        pip install flask-script

Flask-Script使用方法:

            from flask-script import Manager
            manager = Manager(app)

            if __name == '__main__':
                 manager.run()

(8)启动服务

    python app.py runserver -h 127.0.0.1 -p 5000 -d

默认只能本地访问网站,如果需要其他人也可以访问,需要指定0.0.0.0这个ip。-d表示启动debug模式。

3.安装蓝图flask-blueprint

一个大型项目一般由许多的模块组成,为了实现每个模块的功能的独立开发与管理,我们可以采用Flask Blueprint来实现。Flask Blueprint主要有如下功能:
1. 可以独立管理网页的静态文件,如js,css,图片等,既可以指定单纯的静态路径,也可以指定模板的路径。
2. 方便项目中的模块整合。
Flask Blueprint安装方式如下:

    pip install flask-blueprint

初始化:

blue = Blueprint('first', __name__)

路由注册:

app.register_blueprint(blueprint=blue, url_prefix='/hello')
#url_prefix表示蓝图前缀

4.manage.py 和 view.py

创建flask项目后,pycharm自动生成的的代码全部在一个.py文件中,当项目规模表较大时,代码数量增加,会变得不易管理。此时我们可以在项目文件下创建一个manag.py文件用来存放运行文件。在app文件下创建一个view.py文件用来保存我们的主要功能实现代码。
其中manage.py中存储的代码如下:

        from flask import Flask  #从flask中导入flask包
        from flask_script import Manager
        from App import create_app

        #初始化,__name__代表主模块名或者包
        app = create_app()

        manager = Manager(app=app)


        if __name__ == '__main__':
            #启动项目
            manager.run()

view.py中代码如下:

            from flask import Blueprint

            #蓝图初始化
            blue = Blueprint('first', __name__)


            # 路由(127.0.0.1::5000)
            @blue.route('/', methods=['GET', 'POST'])
            def hello_world():
                # 视图函数
                return 'Hello World!'       

5.路由规则

django中:

            \(\d+)\  #\d是匹配数字字符[0-9],+匹配一个或多个
            \<?P(\d+)>\ #?P定义一个命名组

Flask中

        <converter:name>

        string: 默认的字符串,可以省略
        int: 整形

        float:浮点型
        path:'/'也是当做字符串返回

        uuid:uuid类型 

Flask中路由实例:

            @blue.route('/getfloat/<float:price>/')
            def hello_float(price):
                return 'float:%s' % price


            @blue.route('/ggg/<string:name>/')
            def hello_name(name):

6.request请求

(1)args和values
get请求,返回请求中的参数,values返回请求中的参数和form

    return json.dumps(request.args)
    return str(request.value)

(2) form
返回form的内容

     return json.dumps(request.form)

(3) files
请求上传的file文件

(4)method
获取请求方式

    return request.method

(5)url、path、script_root、base_url、url_root:看结果比较直观

return 'url: %s , script_root: %s , path: %s , base_url: %s , url_root : %s' % (request.url,request.script_root, request.path,request.base_url,request.url_root)

(6)cookies:cookies信息

   return json.dumps(request.cookies) 

7.安装flask-session和redis

flask-session是flash框架的session组件,由于原来的flask内置session使用签名cookie保存,该组件则支持session保存到多个地方,如:
redis:保存数据的一种工具
memcashed
filesystem
mongodb
sqlachey

安装方式:

  pip install flask-session
  pip install redis

猜你喜欢

转载自blog.csdn.net/u014229742/article/details/80336819
今日推荐