Web开发—Flask框架(一)

本文介绍了Flask框架的基本概念,包括其轻量级特性,与Django的对比,以及Flask的目录结构。详细讲解了Flask的使用,包括创建Hello World应用、外部可访问的服务器、调试模式、路由、HTTP方法、静态文件等内容。同时,讨论了访问请求数据的方法,如环境局部变量、请求对象、Cookies、重定向和错误处理,以及会话和消息闪现的使用。适合初学者入门和进阶学习。
摘要由CSDN通过智能技术生成

一、Flask简介

1、Flask是一个基于Python开发并且依赖于jinja2模块和Werkzeug WSGI(服务器网管接口 工具)服务的一个微型框架,对于Werkzeug 本质是Socket服务器端,其用于接受HTTP请求并对请求进行预处理,然后触发Flask框架,开发人员基于Flask框架提供的功能对请求进行相应的处理,并返回給用户,如果要返回给用户复杂的内容时,需要借助jinja2模版来实现对模版的处理,即:将模版和数据进行渲染,将渲染之后的字符串返回给用户的浏览器。
2、默认情况下,Flask 不包含数据库抽象层、表单验证,或是其它任何已有多种库可以胜任的功能。然而,Flask 支持用扩展来给应用添加这些功能,如同是 Flask 本身实现的一样。众多的扩展提供了数据库集成、表单验证、上传处理、各种各样的开放认证技术等功能。Flask 也许是“微小”的,但它已准备好在需求繁杂的生产环境中投入使用。

二、Flask目录结构

flask-demo/
  ├ run.py           # 应用启动程序
  ├ config.py        # 环境配置
  ├ requirements.txt # 列出应用程序依赖的所有Python包
  ├ tests/           # 测试代码包
  │   ├ __init__.py 
  │   └ test_*.py    # 测试用例
  └ myapp/
      ├ admin/       # 蓝图目录
      ├ static/
      │   ├ css/     # css文件目录
      │   ├ img/     # 图片文件目录
      │   └ js/      # js文件目录
      ├ templates/   # 模板文件目录
      ├ __init__.py    
      ├ forms.py     # 存放所有表单,如果多,将其变为一个包
      ├ models.py    # 存放所有数据模型,如果多,将其变为一个包
      └ views.py     # 存放所有视图函数,如果多,将其变为一个包

三、flask框架

1、简介:轻量级框架

**Django:**无socket、中间件、路由系统、视图(CBV,FBV)、模版、ORM、cookie、Session、Admin、Form、缓存、信号、序列化…
**Flask:**无socket、中间件(扩展)、路由系统、视图(CBV)、第三方模板(jinja2)、cookie、Session
2、Flask依赖一个实现WSGI协议的模块:werkzeug
3、依赖于WSGI模块:wsgiref,werkzeug,wsgi
4、request:

  • request.form
  • request.args

四、基本使用

1、helloworld

from flask import Flask

app =Flask(__name__)  

@app.route('/')
def index():
    return '这是首页。。。'
@app.route('/login/')
def login():
    return '正在登陆...'

@app.route('/logout/')
def logout():
    return '正在退出...'

if __name__ == '__main__':
    app.run()
    # 运行Flask项目, 默认ip和端口是127.0.0.1:5000
    # 如何特色化指定? host='0.0.0.0'  开放本机的所有IP port=5000 端口必须是整形数
    # debug=True: 是否开启调试模式, 测试环境中开启, 生产环境一定要关闭.

引用flask文档中的解释
1、首先,我们导入了 Flask 类。这个类的实例将会是我们的 WSGI 应用程序。
2、接下来,我们创建一个该类的实例,第一个参数是应用模块或者包的名称。 如果你使用单一的模块(如本例),你应该使用 name ,因为模块的名称将会因其作为单独应用启动还是作为模块导入而有不同( 也即是 ‘main’ 或实际的导入名)。这是必须的,这样 Flask 才知道到哪去找模板、静态文件等等。详情见 Flask 的文档。
3、然后,我们使用 route() 装饰器告诉 Flask 什么样的URL 能触发我们的函数。
4、这个函数的名字也在生成 URL 时被特定的函数采用,这个函数返回我们想要显示在用户浏览器中的信息。
5、最后我们用 run() 函数来让应用运行在本地服务器上。 其中 if name == ‘main’: 确保服务器只会在该脚本被 Python 解释器直接执行的时候才会运行,而不是作为模块导入的时候。

欲关闭服务器,按Ctrl +C
2、字符串

from flask import Flask
 
 
app=Flask(__name__)
 
 
@app.route('/')
def hello_word():
    return '<h1>Hello Word!</h1>'
 
if __name__=='__main__':
    app.run(debug=True)

3、json

from flask import Flask
import json
 
 
 
app=Flask(__name__)
 
 
@app.route('/json')
def do_json():
    hel
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值