首页 > 其他 > 详细

flask初体验

时间:2021-04-28 14:47:02      阅读:23      评论:0      收藏:0      [点我收藏+]

flask初体验

1.简单程序(hello.py)
from flask import Flask  
app = Flask(__name__)  # 创建Flask对象
?
@app.route(‘/‘)  # url路由,装饰器
def hello_world():
   return ‘Hello, World!‘
2.服务器开启(控制台)
  • 设置环境变量(win环境set) set FLASK_APP=hello.py

  • 运行服务器 flask run90

  • 改进(代码修改后自动重启服务器):

    set FLASK_ENV=development

    flask run

    还是很麻烦啊!!!!!!!!!,那就这样呗

    from flask import Flask  
    app = Flask(__name__)  # 创建Flask对象
    ?
    @app.route(‘/‘)  # url路由,装饰器
    def hello_world():
       return ‘Hello, World!‘
    ?
    if __name__ == "__mian__":
      app.run(debug=True)

     

3.变量规则(<>)

正则匹配,限制参数输入。匹配失败url无效。

  • 缺省(默认是string,但是不能有斜杠

    @app.route(‘/user/<username>‘)
    def  get_username( username ):    
       return   "username: "+username
    ?
    # http://127.0.0.1:5000/user/陈墨
  • 规定数据类型(int)

    @app.route(‘/age/<int:age>‘)
    def  get_age(age):    
    return "age is int : " +  str(age)

    # http://127.0.0.1:5000/age/21
  • 多个变量(2个)

    @app.route(‘/people/<string:name>/<int:age>‘)
    def get_people(name,   age ):    
    return "name: %s,   age %s! " %(name, age   )

    # http://127.0.0.1:5000/people/陈墨/24
*4.刻骨铭心的——唯一的 URL / 重定向行为
  • 前奏,两个路由函数:


  • 照本宣科,浏览器请求 :

    • 127.0.0.1:5000/projects: 服务端没有匹配到projects,服务器加’/‘,重定向projects/

    • 127.0.0.1:5000/about: 匹配到about,正常回复浏览器

    • 简而言之一句话: 初次匹配失败,加’/‘再匹配;再失败,拜拜

  • 意外之事: 浏览器硬缓存捣蛋

    • 首次请求127.0.0.1:5000/projects, 由于重定向浏览器再次请求127.0.0.1:5000/projects时,浏览器自动替换成127.0.0.1:5000/projects/

  • redirect() 重定向到其他的url

  • about() 中断请求并带错误信息

5.url构造 --
6.http方法

缺省情况是get请求

  • 服务端程序:

    from  flask   import   Flask,  request
    app =  Flask( __name__ )
    ?
    @app.route("/", methods=[‘GET‘,‘POST‘] )   # 测试1 ,
    def  test_http():    
    return   str( request.method )

    @app.route("/get")# 测试2,缺省为get
    def  test_get():    
    return   "only get "
  • http请求:

    # 测试1
    a = requests.get( "http://127.0.0.1:5000/") # 通过
    print   a.content
    ?
    b = requests.post( " http://127.0.0.1:5000/") # 通过
    print b.content
    ?
    # 测试2
    c =  requests.get(" http://127.0.0.1:5000/get")# 通过
    print  c.content
    ?
    d = requests.post(" http://127.0.0.1:5000/get") # 失败,路由是get
    print d.content
  • 请求对象:

    • post:

      • if   request.method == ‘POST‘:    # post请求   
           form =  request.values    # 表单
           name =  form["name"]    # 表单元素
           age = form["age"]    
           return   "post-----> name: %s,   age:%s=d" % (name, age )
    • get:

      • # 请求网站  http://127.0.0.1:5000/post?name=chenyangyang&age=24
        name =  request.args.get("name") # 取name的值
        age =  request.args.get("age") # 取age的值
        return   "get-----> name %s,   age:%s " %( name,  age )
7.不能错的文件名——渲染模板、静态文件、ur构造
  • 渲染模板a

    • 程序同目录下创建 ”templates“文件夹, html文件位置。

      • 程序代码: render_template( "/test_01.html" ) # 程序自动在templetes文件夹下寻找

      • 技术分享图片
  • 静态文件

    • 程序同目录下创建”static“文件夹,存放静态文件

      • html页面中使用url_for构造url使用。

        • 技术分享图片

            

    • url构造的使用

8.cookies
@app.route("/cookies") # 第一次访问设置cookies,  
def set_cookies():    
ret = make_response("hello")   # 创建响应体对象
ret.set_cookie("home","甘肃")   # 设置cookies
return ret
?
?
@app.route("/cookies2") # 第二次访问使用cookies
def set_cookies2():    
name main= request.cookies.get("home","无家可归的浪子")   # 获取cookies,cookie不存在则返回后面参数
ret = make_response(name)    
return   ret
9.session
10.消息闪现
+ 结合布局模板实现的用户反馈机制
+ 多种消息
+ 消息过滤显示
11.日志

 

flask初体验

原文:https://www.cnblogs.com/chenmotongxue/p/14713695.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!