zoukankan      html  css  js  c++  java
  • flask小例

    #写一个app.py,处理3个URL:

    '''

    GET / : 首页,返回Home;

    GET /signin:登录页,显示登录表单;

    POST /signin: 处理登录表单,显示登录结果。

    '''

    #注意,同一个URL/signin 分别有GET和POST两种请求,映射到两个处理函数中。

    #Flask通过Python的装饰器在内部自动地把URL和函数给关联起来:

    from flask import Flask    #First we imported the Flask class. An instance of this class will be our WSGI application.

    from flask import request 

    app=Flask(__name__)  

    #创建了一个Flask实例. 第一个参数是 这个应用的模块(module)或包(package)的名字

    #如果你使用单个模块,第一个参数就应该是 __name__   because depending on if it's started as application or 

    #imported as  module the name will be different('__main__' versus the actual import name).this is needed so that Flask knows where to look

    #for templates,static file,and so on .

    @app.route('/',methods=['GET','POST'])

    #route() decorator 告诉 Flask 什么URL 指向该功能/函数  .

    #http 有不同的响应方式对于URLs.默认的是GET ,可以通过提供参数methods的值来改变,可能的值有 GET HEAD POST PUT DELETE OPTIONS 

    def home():

        return '<h1>Home</h1>'

        

    @app.route('/signin',methods=['GET'])

    def signin_form():

        return '''

               <form action="/signin" method="post">

               <p><input name="username"></p>

               <p><input name="password" type="password"></p>

               <p><button type="submit">Sign In</button></p>

               </form>'''

              

    @app.route('/signin',methods=['POST'])

    def signin():

        #需要从request对象读取表单内容:

        if request.form['username']=='admin' and request.form['password']=='password':

            return '<h3>Hello,admin!</h3>'

        return '<h3>Bad username or password.</h3>'

    if __name__=='__main__':

        app.run()

        

    #运行python flask_1.py,Flask自带的Server在端口5000上监听:

    #打开浏览器,输入首页地址http://localhost:5000/ ,显示首页

    #输入http://localhost:5000/signin,会显示登录表单,输入预设的用户名admin和口令password,登录成功,输入其他错误的用户名和口令,登录失败

    '''

    除了Flask,常见的Python Web框架还有:

    Django:全能型Web框架;

    web.py:一个小巧的Web框架;

    Bottle:和Flask类似的Web框架;

    Tornado:Facebook的开源异步Web框架

    '''

    '''

    有了Web框架,我们在编写Web应用时,注意力就从WSGI处理函数转移到URL+对应的处理函数,这样,编写Web App就更加简单了。

    在编写URL处理函数时,除了配置URL外,从HTTP请求拿到用户数据也是非常重要的。Web框架都提供了自己的API来实现这些功能。

    Flask通过request.form['name']来获取表单的内容。

    '''

    from flask import Flask ,render_template

    app=Flask(__name__)

    @app.route('/')

    def hello():

        return '欢迎光临,你好!'

    @app.route('/about')

    def about():

        return '这是一个使用Flask建立的小网站测试'

    @app.route('/user/')

    @app.route('/user/<username>')

    def show_user(username=None):

        return render_template('show_user.html', name=username)

    if __name__ == '__main__':

        app.run()

    http://127.0.0.1:5000/user/tony,输入这个链接,tony会作为入参放在username中。

    flask也提供了网页模板功能(采用Jinja2模板引擎),让开发者把一些固定的使用的.html文件放在templates目录下。

    从网站上读取数据(首先要建立一个窗体的网页,使用request模块获取窗体内的数据):

    @app.route('/login',methods=['POST','GET'])

    def login():

        error=None

        if request.method=='POST':

            username=request.form['username']

            password=request.form['password']

            ...处理用户验证的程序代码...

        return render_templates('login.html',error=error)

  • 相关阅读:
    将博客搬至CSDN
    规范化设计的范式的个人理解
    Codeforces Round #422 (Div. 2) D题要补的知识点
    Codeforces第一次rated比赛
    Codeforces 818B Permutation Game
    USACO Dynamic Programming (1)
    关于数据库中除法的一个小问题
    USACO hamming
    USACO Healthy Holsteins
    USACO Sorting a Three-Valued Sequence
  • 原文地址:https://www.cnblogs.com/Ting-light/p/9547339.html
Copyright © 2011-2022 走看看