二 Flask快速入门

1: 外部可访问的服务器:

如果你运行了这个服务器,你会发现它只能从你自己的计算机上访问,网络中其它任何的地方都不能访问。在调试模式下,用户可以在你的计算机上执行任意 Python 代码。因此,这个行为是默认的。如果你禁用了 debug 或信任你所在网络的用户,你可以简单修改调用 run() 的方法使你的服务器公开可用,如下:

app.run(host=‘0.0.0.0‘),这会让操作系统监听所有公网 IP。

2: 调试模式

虽然 run() 方法适用于启动本地的开发服务器,但是你每次修改代码后都要手动重启它。这样并不够优雅,而且 Flask 可以做到更好。如果你启用了调试支持,服务器会在代码修改后自动重新载入,并在发生错误时提供一个相当有用的调试器。有两种途径来启用调试模式。一种是直接在应用对象上设置:

app.debug = True
app.run()

另一种是作为 run 方法的一个参数传入:

app.run(debug=True)

两种方法的效果完全相同。

注意: 遇到一个问题,程序报错:ModuleNotFoundError: No module named ‘markupsafe._compat‘。 解决方案:把下面代码拷贝到

# -*- coding: utf-8 -*-
"""
    markupsafe._compat
    ~~~~~~~~~~~~~~~~~~
    Compatibility module for different Python versions.
    :copyright: (c) 2013 by Armin Ronacher.
    :license: BSD, see LICENSE for more details.
"""
import sys
PY2 = sys.version_info[0] == 2
if not PY2:
    text_type = str
    string_types = (str,)
    unichr = chr
    int_types = (int,)
    iteritems = lambda x: iter(x.items())
else:
    text_type = unicode
    string_types = (str, unicode)
    unichr = unichr
    int_types = (int, long)
    iteritems = lambda x: x.iteritems()

3: 路由

  (1) 基本路由

@app.route(‘/hello‘)
def hello():
    return ‘Hello World‘

(2) 代参数路由
@app.route(‘/user/<username>‘)
def show_user_profile(username):
    # show the user profile for that user
    return ‘User %s‘ % username(3)转换器
@app.route(‘/post/<int:post_id>‘)def show_post(post_id):    return ‘post %d‘  %  post_id

换器有下面几种:

int 接受整数
float 同 int ,但是接受浮点数
path 和默认的相似,但也接受斜线

(4) URL_for可以生成URL
@app.route(‘/user/<username>‘)def show_user_profile(username):    return ‘ %s ‘  % username

@app.route(‘/post/<int:post_id>‘)def show_post(post_id):   return url_for(‘show_user_profile‘, username = "jack")  # 构造URL
4: HTTP请求一个可以处理GET、POST的函数
app.route(‘/login‘, methods=[‘GET‘, ‘POST‘])def login():    if request.method == ‘POST‘:        return "POST"    else:        return "GET"
5:静态文件
动态 web 应用也会需要静态文件,通常是 CSS 和 JavaScript 文件。理想状况下, 你已经配置好 Web 服务器来提供静态文件,但是在开发中,Flask 也可以做到。只要在你的包中或是模块的所在目录中创建一个名为 static 的文件夹,在应用中使用 /static 即可访问。给静态文件生成 URL ,使用特殊的 ‘static‘ 端点名:
url_for(‘static‘, filename=‘style.css‘),这个文件应该存储在文件系统上的 static/style.css6:模板渲染
Flask 配备了 Jinja2 模板引擎,用来渲染HTML文件。可以使用 render_template() 方法来渲染模板。你需要做的一切就是将模板名和你想作为关键字的参数传入模板的变量。
@app.route(‘/hello/‘)
@app.route(‘/hello/<name>‘)
def hello(name=None):
    return render_template(‘hello.html‘, name=name)

Flask 会在 templates 文件夹里寻找模板hello.html:在templates下创建hello.html:
<!doctype html>
<title>Hello from Flask</title>
{% if name %}
  <h1>Hello {{ name }}!</h1>
{% else %}
  <h1>Hello World!</h1>
{% endif %}

7:  取得请求的参数

当前请求的 HTTP 方法可通过 request.method 属性来访问。

request.form 属性来访问表单数据( POST 或 PUT 请求提交的数据)。‘

request.args.get(‘key‘)  可以取得 /login?key="parameter"的key的值 “parameter”

8: 上传文件

获取POST请求的文件,并保存。

f = request.files[‘the_file‘]
f.save(‘/var/www/uploads/uploaded_file.txt‘)
9: cookie
request.cookies.get(‘username‘)
resp = make_response(render_template(...))
    resp.set_cookie(‘username‘, ‘the username‘)

10:重定向和错误
@app.route(‘/‘)      def hello_world():    return redirect(url_for(‘login‘))            #重定向
@app.errorhandler(404)                       #错误处理def page_not_found(error):    return "error hhahh"


 


原文地址:https://www.cnblogs.com/liufei1983/p/8408984.html

时间: 2024-08-27 15:30:44

二 Flask快速入门的相关文章

网站后端_Python+Flask.0003.FLASK快速入门之Hello Word?

框架特点: 1. 非常小, 小到可称为微型框架 2. 可扩展, 设计初衷就是不会替开发者做太多决策,支持随时更换或动手实现扩展模块 3. 三依赖, 路由/调试/WSGI(由WERKZEUG提供的WEB服务器网关接口实现),模版系统(由JINJA2实现),签名(由ITSDANGEROUS实现) 快速安装: pip install flask 快速入门: #!/usr/bin/env python # -*- coding: utf-8 -*- """ # # Authors: 

Bmob移动后端云服务平台--Android从零开始--(二)android快速入门

Bmob移动后端云服务平台--Android从零开始--(二)android快速入门 上一篇博文我们简单介绍何为Bmob移动后端服务平台,以及其相关功能和优势.本文将利用Bmob快速实现简单例子,进一步了解它的强大之处. 一.准备工作 1.注册Bmob账号 在网址栏输入www.bmob.cn或者在百度输入Bmob进行搜索,打开Bmob官网后,点击右上角的"注册",在跳转页面填入你的姓名.邮箱.设置密码,确认后到你的邮箱激活Bmob账户,你就可以用Bmob轻松开发应用了. 2.网站后台创

Flask快速入门(17) — flask_session

Flask快速入门(17) - flask_session 作用:将默认保存的签名cookie中的值,保存到 redis/memcached/file/Mongodb/SQLAlchemy 安装:pip install flask-session 使用1: from flask import Flask,session from flask_session import RedisSessionInterface import redis app = Flask(__name__) conn=r

Flask快速入门(18) — 信号

Flask快速入门(18) - 信号 作用:Flask框架中的信号基于blinker,其主要就是让开发者可以在flask请求过程中定制一些用户行为 安装:pip install blinker 内置信号: request_started = _signals.signal('request-started') # 请求到来前执行 request_finished = _signals.signal('request-finished') # 请求结束后执行 before_render_templ

Flask快速入门(20) — 多app应用

Flask快速入门(20) - 多app应用 之前一直是一个app,如果有多个app该怎么进行分发呢? from werkzeug.wsgi import DispatcherMiddleware from werkzeug.serving import run_simple from flask import Flask,current_app # 注册两个app app1 = Flask('app01') app2 = Flask('app02') @app1.route('/index')

【转】Flask快速入门

迫不及待要开始了吗?本页提供了一个很好的 Flask 介绍,并假定你已经安装好了 Flask.如果没有,请跳转到 安装 章节. 一个最小的应用 一个最小的 Flask 应用看起来会是这样: from flask import Flask app = Flask(__name__) @app.route('/') def hello_world(): return 'Hello World!' if __name__ == '__main__': app.run() 把它保存为 hello.py 

Zabbix最佳实践二:快速入门

一.登录与配置用户 1.1 登陆 这是Zabbix的"欢迎"界面.输入用户名 Admin 以及密码 zabbix 以作为 Zabbix超级用户登陆. 登陆后,你将会在页面右下角看到"以管理员连接(Connected as Admin)".同时会获得访问配置(Configuration) 和 管理(Administration) 菜单的权限. 点击右上角的用户头像,将显示语言设置为中文. 1.2 增加用户 可以在管理(Administration) → 用户(User

学习Go语言(二)快速入门

作为一名学习过多种编程语言的“老码农”,学习一门新的语言不能像“新手”一样,要快速入门. 无论面向过程,还是面向对象的编程语言:静态语言,动态语言,一般都包括: 标识符.变量(常量).运算符.表达式.输入.输出.选择结构,循环结构.函数等: 比较“新”的编程语言,为了简化编程一般都支持容器,其次就是函数式编程的“语法糖”. 1. 关于开发工具的选择 官网上推荐:vi.vs code.GoLand.ATOM. 如果要快速上手,优先还是“记事本”这种非常原数的工具.当所有的坑都踩过,可以快速切换到其

Flask快速入门,知识整理

一.Flask介绍(轻量级的框架,非常快速的就能把程序搭建起来) Flask是一个基于Python开发并且依赖jinja2模板和Werkzeug WSGI服务的一个微型框架,对于Werkzeug本质是Socket服务端,其用于接收http请求并对请求进行预处理,然后触发Flask框架,开发人员基于Flask框架提供的功能对请求进行相应的处理,并返回给用户,如果要返回给用户复杂的内容时,需要借助jinja2模板来实现对模板的处理,即:将模板和数据进行渲染,将渲染后的字符串返回给用户浏览器. “微”