flask web 编程学习笔记1:基础知识


Flask是一个使用 Python 编写的轻量级 Web 应用框架,能迅速的建立一个http服务器,下面代码就是一些简单的例子。
复制代码直接执行,然后就可以在浏览器中输入127.0.0.1浏览自己的网页。

'''
    Note1. Base App And Sample Example.
'''
#
##############################################################
#     You must to install flask framework before you use it.
# Use shell like this: python3 -m pip install flask (in shell)
# or pip install flask (in cmd)
##############################################################
#
from flask import Flask,request,make_response,redirect
# 
app = Flask(__name__)
#
# Route is base of html output way.
# 1. Instrcution route:
#    '/'    -- root, if you browse input :192.168.1.100:5050, 
#              You will see this page.
#    '/xxx' -- some page like 192.168.1.100:5050/xxx.
#    'name' -- use for a variable values.
# 2. app.url_map show all url
# 3. @app.route == app.add_url_rule()
#
@app.route('/')
def index():
    print(app.url_map)
    #
    # Will Show: 
    # Map([<Rule '/User-Agent' (HEAD, GET, OPTIONS) -> userAgent>,
    #      <Rule '/' (HEAD, GET, OPTIONS) -> index>,
    #      ...
    #      <Rule '/static/<filename>' (HEAD, GET, OPTIONS) -> static>,
    #      <Rule '/user/<name>' (HEAD, GET, OPTIONS) -> user>])
    #      
    return '<h1>Hello World!</h1>'
#
# 1. http invalid request: 400 404
#         valid request  : 200
# 2. app.route can return max 3 part. like: return '<h1>Bad Request</h1>', 400 .
#    3rd is part of dict name header.
#    or you can use make_response link it 
#    
@app.route('/make_response')
def mresponse():
    response = make_response('<h1>This document carries a cookie!</h1>')
    response.set_cookie('answer', '42')
    return response
#
# redirect to another html or web page.
#    
@app.route('/unkown')
def mredirect():
    return redirect('http://www.163.com')
#
# 上下文:程序上下文和请求上下文
# 1. 单线程内使用,不影响其他线程。 
# 2. 保存当前线程上下文信息,待到处理函数处理的时候,可以实现异步处理。
# 3. 说明:
# |----------------------------------------------------------------------------------
# |   变量名   |   上下文   |      说  明                                          
# |----------------------------------------------------------------------------------
# |current_app | 程序上下文 | 当前激活程序的程序实例.                                
# |g           | 程序上下文 | 处理请求时用作临时存储的对象,每次请求都会重设这个变量. 
# |request     | 请求上下文 | 请求对象,封装了客户端发出的HTTP请求中的内容.          
# |session     | 请求上下文 | 用户会话,用于存储请求之间需要“记住”的值的词典.        
# |----------------------------------------------------------------------------------
# Example:
#   from hello import app
#   from flask import current_app
#   app_ctx = app.app_context()
#   app_ctx.push()
#   print(current_app.name) 
#   app_ctx.pop()
#
@app.route('/User-Agent')
def userAgent():
    user_agent = request.headers.get('User-Agent')
    return '<p>Your browser is %s</p>' % user_agent  
#    
@app.route('/user/<name>')
def user(name):
    return '<h1>Hello, %s!</h1>' % name
#
# app.run will run forever ,It can set some param to contorl run status.  
# 
if __name__ == '__main__':
    app.run(debug=True)
    
'''
    Extend function. Hook and Flask-Script
'''  
# |===========================
# | 1. Hook -- define 4 hooks
# |===========================
#• before_first_request:注册一个函数,在处理第一个请求之前运行。
#• before_request:注册一个函数,在每次请求之前运行。
#• after_request:注册一个函数,如果没有未处理的异常抛出,在每次请求之后运行。
#• teardown_request:注册一个函数,即使有未处理的异常抛出,也在每次请求之后运行。
#
# |===========================
# | 2. Flask-Script
# |===========================
#
#  1) install: python3 -m pip install flask-script.
#  2) example:
#     from flask.ext.script import Manager
#     manager = Manager(app)
#     #...
#     if __name__ == '__main__':
#         manager.run()
#
#  3)when run app.py will display:usage: hello.py [-h] {shell,runserver} ...
#    DISPLAY:
#    positional arguments:
#       {shell,runserver}
#       shell 在Flask 应用上下文中运行Python shell
#       runserver 运行Flask 开发服务器:app.run()
#    optional arguments:
#       -h, --help 显示帮助信息并退出
#    AND:
#    usage: app.py runserver [-h] [-t HOST] [-p PORT] [--threaded]
#          [--processes PROCESSES] [--passthrough-errors] [-d] [-r]
#   optional arguments:
#       -h, --help 显示帮助信息并退出
#       -t HOST, --host HOST
#       -p PORT, --port PORT
#       --threaded
#       --processes PROCESSES
#       --passthrough-errors
#       -d, --no-debug
#       -r, --no-reload
#       --host 参数是个很有用的选项,它告诉Web 服务器在哪个网络接口上监听来自客户端的
#              连接。默认情况下,Flask 开发Web 服务器监听localhost 上的连接,所以只接
#              受来自服务器所在计算机发起的连接。下述命令让Web 服务器监听公共网络接口
#              上的连接,允许同网中的其他计算机连接服务器:
#
#

版权所有丨如未注明,均为原创,转载请注明转自:https://whonee.net/flask%e5%9f%ba%e7%a1%80%e7%9f%a5%e8%af%86.html

发表评论

电子邮件地址不会被公开。 必填项已用*标注