day01

作者: 李小萌mmm | 来源:发表于2018-12-17 19:21 被阅读0次
    管理启动命令
    pip install flask-script
    from flask_script import  Manager
    
     manage = Manager(app)
     manage.run()
    
    在命令行写
    -h Ip -p端口 -d debug
     python hello.py runserver -h 0.0.0.0 -p 8080 -d
    
    
    ------------------------
    
     @app.route('/get_uuid/')
    def get_uuid():
        import uuid
        return str(uuid.uuid4())
    
    
    uuid生成唯一标识
    4351a188-099e-4840-9f1d-edc720f030e3
    
    
    -------------------------
    使用蓝图定义路由,目的拆分路由
    blueprint把实现不同功能的module分开,也就是把一个大的App
    分割成各自实现不同功能的module
    
    
    pip install flask-blueprint
    建立一个app文件夹再建立一个views.py文件
    
    views.py
    from flask import Blueprint
    # 模块化管理路由
    # 第一步 生成蓝图对象
    blueprint = Blueprint('first',__name__)
    
    @blueprint.route('/')
    def hello():
        return 'hello'
    
    
    
    manage.py
    from flask import  Flask
    from flask_script import Manager
    from app.views import  blueprint
    app = Flask(__name__)
    # 第二步: 注册蓝图
    #url_prefix 路由前缀
    app.register_blueprint(blueprint=blueprint,url_prefix='/app')
    
    
    manager = Manager(app)
    if __name__ == '__main__':
        manager.run()
    
    
    ------------------
    跳转
    views.py
    
    from flask import Blueprint, redirect,url_for
    
    
    # 1. 定义路由跳转到hello方法
    
    @blueprint.route('/redirect/')
    def my_redirect():
        # redirect跳转  url_for 反向解析
        # first.hello  蓝图第一个参数.跳转的函数名
        return redirect(url_for('first.hello'))
    
    # 2.定义路由跳转到stu方法
    @blueprint.route('/redirect_id/')
    def stu_redirect():
        return redirect(url_for('first.stu',id=3))
    
    
    
    
    
    
    -----------
    响应
    # 返回一个响应
    @blueprint.route('/make_response/')
    def my_response():
        # 第一个参数响应内容,第二个参数响应状态码
        res = make_response('<h2>GOOD GOOD</h2>')
        # 设置cookie  key , value, ,max_age以秒为单位, expires以datetime为单位
        res.set_cookie('token', '123456', max_age =6000)
        return res
    
    
    @blueprint.route('/del_cookie/')
    def del_cookie():
        res = make_response('<h2>删除cookie</h2>')
        # 删除cookie
        res.delete_cookie('token')
        return res
    
    
    -------------------------------
    请求方式
    # methods定义路由的请求方式 默认是GET
    # GET POST PUT PATCH DELETE
    @blueprint.route('/req/' , methods=['GET','POST'])
    def req():
        # 通过postman测试
        if request.method == 'GET':
            # 获得GET请求中传递的参数 request.args
            # 获得GET请求中name=小明的name参数 request.args.get(key)或request.form.getlist(key)
            return 'lml get'
        if request.method == 'POST':
            # 获得POST请求中传递的参数 request.form
            # 获得值 request.form.get(key) 或request.form.getlist(key)
            return 'lml post'
    
    --------------------------
     登录
    @blueprint.route('/login/' , methods=['GET','POST'])
    def login():
        if request.method == 'GET':
            return  render_template('login.html')
    
        if request.method == 'POST':
            # 模拟登录
            username = request.form.get('username')
            password = request.form.get('password')
            if username =='lml' and password=='123':
                # 将键值对作为值保存在客户端
                session['user_id'] = 1
            return redirect(url_for('first.hello'))
     在manage.py进行加密
     app.secret_key ='ntjyjeiyj45p6-43-=0234fk2m3k41mk2'

    相关文章

      网友评论

          本文标题:day01

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