加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Python > 正文

Flask框架基础1

发布时间:2020-12-20 10:30:17 所属栏目:Python 来源:网络整理
导读:Flask框架 基于jinja2模板和werkzeug wsgi服务微型框架 werkzeug简介 werkzeug是一个wsgi工具包,他可以作为一个web框架的底层库,werkzeug不是一个web服务器,也不是一个web框架,而是一个工具包,官方的介绍说是一个wsgi工具包,它可以作为一个web框架的底

Flask框架

基于jinja2模板和werkzeug wsgi服务微型框架

werkzeug简介

werkzeug是一个wsgi工具包,他可以作为一个web框架的底层库,werkzeug不是一个web服务器,也不是一个web框架,而是一个工具包,官方的介绍说是一个wsgi工具包,它可以作为一个web框架的底层库,因为他封装好了很多web框架的东西,例如Request,Response等等。

from werkzeug.wrappers import Request,Response

@Request.application
def hello(request):
    return Response('Hello world!')

if __name__=='__main__':
    from werkzeug.serving import run_simple
    run_simple('localhost',4000,hello)

启动flask

本质是执行wsgi_app()

from flask import Flask # 导入flask
app=Flask(__name__) # 实例化Flask对象

@app.route('/index') # 加路由
def index():
    return '123'

@app.route('/login')
def login():
    return '我的登录'

if __name__ == '__main__':
    app.run() # 启动flask,执行wsgi_app()

django四剑客-->flask四剑客

"""
django      flask
redirect-->redirect
render-->render_template # 传值字典要**打散
HttpResponse-->HttpResponse
JsonResponse-->jsonify
"""

from flask import Flask,redirect,render_template,jsonify
app=Flask(__name__)

@app.route('/index')
def index():
    return redirect('/login')

@app.route("/test")
def test():
    data={"name":"ada","age":30}
    return render_template("index.html",**data)

@app.route("/login")
def login():
    data = {"name": "ada","age": 30}
    return jsonify(data)

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

flask配置文件四种方式

from flask import Flask
app=Flask(__name__)

# 第一种方式
app.debug=True
app.secret_key='asdas'

# 第二种方式
app.config['DEBUG']=True

# 第三种方式
app.config.from_pyfile('settings.py')

# settings.py文件
DEBUG=True

# 第四种方式(推荐)
app.config.from_object('settingss.Test')

# settingss.py文件
class Test:
    DEBUG=True

flask路由本质

其实是执行 app.add_url_rule(self,rule,endpoint=None,view_func=None)

rule-->路由

endpoint-->反向解析的别名

view_func-->当前的视图函数

methods-->允许请求的方式[‘get‘,‘post‘],如果不传值默认是get请求

from flask import Flask,url_for,redirect
app=Flask(__name__)

# 第一种装饰器路由
@app.route('/',endpoint='n1') # endpoint取别名,方便重定向跳转指定函数,不写默认是函数名
def index():
    return 'ok'

# 第二种路由
app.add_url_rule('/',view_func=index) # 注释@app.route('/',endpoint='n1')之后,使用app.add_url_rule('/',view_func=index)指向index函数

@app.route('/login',methods=['get','post'])
def login():
    print(url_for('n1'))
    return redirect(url_for('n1'))

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

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读