美文网首页
flask从零开始

flask从零开始

作者: 憨猜猜 | 来源:发表于2019-03-06 21:55 被阅读0次

    创建一个环境

    1.使用virtualenv创建
    a.安装:pip install virtualenv
    b.创建虚拟环境:virtualenv --no-site-packagses -p 创建的绝对路径(D:\python37\python.exe flaskenv9)
    c.激活环境 :win:cd flaskenv9/Scripts  执行activate
    d.退出环境:delactivate
    
    2.使用pycharm创建
    
    在terminal中创建环境python -m venv 虚拟环境的名字
    

    flask安装与使用

    安装:先激活环境,在执行pip install flask
    

    pip使用

    1.查询安装的库:pip list /pip freeze
    2.安装内容:pip install xxx
    3.安装文件:pip install -r requeirement.txt
    

    启动

    1.flask自带启动方式:app.run(host,port,debug)
    2.使用flask-script库
    a.pip install flask-script
    b.from flask-script import Manager  manage = Manager(app)  manage.run()
    c.启动命令:python xxx.py runserver -p -h -d
    

    路由规则

    1.定义格式:<转换器(类型):参数名>
    2.转换器
    a.int:指定整形
    b.string:指定字符串,默认类型
    c.float:指定浮点类型
    3.注意:<string:name>其实和<name>是一样的
    

    请求与响应

    1.请求
    a.获取参数
    1).get 请求:获取参数:request.args、request.args.get('key')
    2).post请求获取参数:request.form、request.form.get(key)或者request.form[key]
    3).获取多个同样的key对应的vallue值时,使用getlist(key)
    b.获取请求路径:request.path
    c.请求cookies:request.cookies
    d.获取上传文件:request.files
    1).取值:request.files.get(key)/ request.files[key]
    2.响应
    a.导包:from flask import make_response
    b.使用:make_response('响应内容',响应状态码)
    

    cookie与session

    cookie:
    1.产生场景:由于HTTP无状态协议,cookie的使用,保存一个令牌(标识符)用于标识用户的登录状态
    2.令牌的产生:在登录时向cookie中设置的。
    3.设置令牌:res=make_response()  
    res.set_cookit(key,value,max_age)
    4.cookie不能跨浏览器
    5.cookie中设置的参数有字节限制,不能无限的存储参数
    6.删除:res=make_response()
    res.delete_cookie(key)
    
    
    session:
    1.flask默认存储session的形式,将session数据保存在客户端
    a.导包from flask import session
    b.使用:session[key] = value
    2.使用flask-session库,将session数据保存在服务器端
    a.pip install redis flask-session
    b.app.config['SESSION_TYPE'] = 'redis'
    c.app.config['SESSION_REDIS'] = redis.Redis()
    d.secret_key:加密复杂程度
    e.from flask_session import Session 
    Session(app)
    

    装饰器

    1.条件
    a.外层函数嵌套内层函数
    b.外层函数返回内层函数
    c.内层函数调用外层函数的参数
    2.注意
    a.外层函数传入的参数即为被装饰的函数
    b.from functools import wraps  
    @wraps(func) - 通过这个来解释函数
    
    
    

    蓝图

    1.产生背景:管理路由地址
    2.安装:pip install flask-blueprint
    3.使用
    a.第一步:blue=Blueprint('first',__name__)
    @blue.route('路由地址')
    b.第二步:flask对象app.register_blueprint(blueprint=blue)
    4.跳转
    a.redirect(url_for('生成蓝图的第一个参数.跳转的函数名称',参数名=值,参数名2=值2))  
    有参跳转
    b.redirect(url_for('生成蓝图的第一个参数.跳转的函数的名称'))
    无参跳转
    

    模板

    1.父模板
    a.定义网站模块的大体框架,定义可以被动态填充内容的block块
    b.block块定义
    {%block name%}
    {%endblock%}
    c.注意:block名称不能取同名
    
    2.子模版
    a.继承父模板:{% extends '父模板' %}
    b.动态可选择性的填充父模板中定义的block块,使用
    {% block name %}
    动态内容
    {% endblock %}
    
    3.语法
    a.解析标签:{% 标签名 %}{% end标签 %}
    1).for:{% for a in [] %}{% else %}{% endfor %}
    2).if: {% if 判断条件 %}{% else %}{%  endif %}
    3).block:{% block name %}{% endblock %}
    
    b.loop:变量   解析变量:{{变量名}}
    1).loop.index: 从1开始的值
    2).loop.index0: 从0开始
    3).loop.revindex: 倒序到1结束
    4).loop.revindex0: 倒序到0结束
    5).loop.first: 第一次循环返回True
    6).loop.last: 最后一次循环返回True
    
    c.注解:{# 注解内容 #}
    
    4.过滤器
    a.写法:{{变量|过滤器}}
    b.safe
    c.length
    d.upper
    e.lower
    

    模型

    1.ORM概念:object relationship mapping  - 对象关系映射
    2.flask-sqlalchemy库
    a.安装:pip install flask-sqlalchemy
    b.创建模型
    c.配置数据库信息
    1).数据库连接格式:mysql+pymysql://root:123456@127.0.0.1:3306/flask9
    2).sqlalchemy对象db.init_app(flask对象)
    
    d.映射
    1).创建:sqlalchemy对象 db.create_all()
    2).删除:sqlalchemy对象db.drop_all()
    
    
    3.增
    db.session.add(插入对象) db.session.commit()
    
    4.删
    db.session.delete(删除对象) db.session.commit()
    
    5.改
    db.session.add(插入对象) db.session.commit()
    
    6.查
    a.query:管理器
    
    b.filter(模块名.字段 ==值)
    
    c.filter_by(字段 = 值)
    
    d.first():查询结果中的第一个数据对象
    
    e.all():查询结果中的所有数据对象,返回列表
    
    f.get():查询主键所在行的对象信息
    
    g.order_by:排序
    1).sqlalchemy1.3版本之前的写法
    升序:order_by('字段')
    降序:  order_by('-字段')
    
    2).sqlalchemy1.3版本
    升序:order_by(模块名.字段)
    降序:order_by(-模块名.字段)
    
    h.offset/limit:分页
    
    i.模糊查询
    1).contains
    包含
    
    2).like:% _
    
    3).startswith
    以什么开头
    
    4).endswith
    以什么结尾
    
    j.in_/notin_
    
    k.大于:gt     大于等于:ge
    
    l.小于 lt   小于等于 le
    
    m.and_,or_,not_
    
    

    相关文章

      网友评论

          本文标题:flask从零开始

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