Flask框架笔记

Flask简单使用(flask)

from flask import Flask #先将flask包导入

app = Flask(__name__)

@app.route('/') #路由
def index(): #定义index函数
    return '首页'  #返回字首页


if __name__ == '__main__':
   app.run()  #运行一下

启动python的flask框架:python xxxx.py

运行结果

图片[1]-Flask框架笔记-松鼠博客

Flask路由(route)

app路由.py

from flask import Flask
app = Flask(__name__)

@app.route('/hello')
def hello():
    return 'hello word!'

@app.route('/hi')
def hi():
    return 'hi!!!'

# @app.route('h1',methods=['GET','POST'],endpoint='h1')
# methods是传参方式,endpoint是指定传参


#string 接受任何不包含斜杠的文本
#int 接受正整数
#float 接受正浮点数
# path 接受包含斜杠的文本
# @app.route('/user/<float:id>')

@app.route('/user/<id>')
def index(id):
    if id=='1':
        return 'python'
    if id==str(2):
        return 'djanggo'
    if int(id)==3:
        return 'flask'
    return 'hello word'


if __name__ == '__main__':
    app.run()

自定义转换器(from werkzeug.routing import BaseConverter)

引入from werkzeug.routing import BaseConverter

from werkzeug.routing import BaseConverter
from flask import Flask

app = Flask(__name__)

class RegexConverter(BaseConverter):
    def __init__(self,url_map,regex):
        #调用父类的方法
        super(RegexConverter,self).__init__(url_map)
        self.regex = regex

    def to_python(self, value):
        #父类的方法 功能已经实现好了
        print('to_python方法被调用')
        return value
#将自定义的转换器类添加到flask应用中
app.url_map.converters['re'] = RegexConverter

@app.route('/index/<re("1\d{10}"):value>')
def index(value):
    print(value)
    return 'hello'

if __name__ == '__main__':
    app.run()

渲染from表单(render_template)

from表单.py

from flask import Flask,render_template

app = Flask(__name__)

@app.route('/index',methods=['GET','POST'])
def index():
    return render_template('index.html')

if __name__ == '__main__':
    app.run()

index.html

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
<form action="" method="post">
    账号:
    <input type="text" name="name">
    <br>
    密码:
    <input type="text" name="password">
    <br>
    <input type="submit" name="submit">
</form>
</body>
</html>

request对象

request对象.py

 # ruquest包含前端发送过来的所有请求数据
from flask import Flask,render_template,request

app = Flask(__name__)

@app.route('/index',methods=['GET','POST'])
def index():
    if request.method == 'GET':
        return render_template('index.html')
    if request.method == 'POST':
        name= request.form.get('name')
        password = request.form.get('password')
        print(name,password)

        return 'this is post'



if __name__ == '__main__':
    app.run()

index和上面渲染from一样

重定向(redirect)

from flask import Flask,redirect,url_for

app = Flask(__name__)

@app.route('/index')
def index():
    # return redirect('https://baidu.com') #这种重定向到域名
    return redirect(url_for('hello'))   #这种重定向到自己的函数


@app.route('/')
def hello():
    return 'this is hello'


if __name__ == '__main__':
    app.run()

返回json数据给前端

from flask import Flask,make_response,json,jsonify

app = Flask(__name__)

#添加属性
app.config['JSON_AS_ASCII']=False

@app.route('/index')
def index():
    data={
        'name':'张三'
    }
    #第一种方式:
    # response = make_response(json.dumps(data,ensure_ascii=False))
    # response.mimetype = 'application/json'
    # return response

    #第二种方式:
    return jsonify(data)
    # return make_response(json.dumps(data,ensure_ascii=False))
                                        #将ascii关闭


if __name__ == '__main__':
    app.run()
© 版权声明
THE END
喜欢就支持一下吧
点赞5 分享
评论 抢沙发

请登录后发表评论

    暂无评论内容