zoukankan      html  css  js  c++  java
  • 初识Flask——基于python的web框架

    参考教程链接:

    https://dormousehole.readthedocs.io/en/latest/

    (主要)https://www.w3cschool.cn/flask/

     目录:

    1.写了一个简单的flask

    2.url传参数

    3.url_for重定向

    4.和html中post和get的交互

    5.渲染模板(前端字段交给后端,后端再返回新字段渲染给前端)

    前提准备:anaconda(python3),pycharm

    一、写一个hello.py

    from flask import Flask
    app = Flask(__name__)
    
    @app.route('/')
    def hello_world():
       return 'Hello World’
    
    if __name__ == '__main__':
       app.run()

    解释:

    1.@app.route('/')说明了下面的hello_world()函数与url'/'绑定(http://127.0.0.1:5000/)
    运行该hello.py,点击pycharm下的链接http://127.0.0.1:5000/,即会显示字符串Hello World
    2.@app.route(‘/hello’)则绑定http://localhost:5000/hello

    二、从url名字传递参数(
    @app.route('/hello/<name>')
    from flask import Flask
    app = Flask(__name__)
    
    @app.route('/hello/<name>')
    def hello_name(name):
       return 'Hello %s!' % name
    
    if __name__ == '__main__':
       app.run(debug = True)

    输入链接:http:// localhost:5000/hello/Jack


    将会显示: Hello Jack!

    参考:https://www.w3cschool.cn/flask/flask_variable_rules.html

    三、url重定向(return redirect(url_for('hello_admin')))

    url_for('')  #重定向到另外一个函数

    from flask import Flask, redirect, url_for
    app = Flask(__name__)
    @app.route('/admin')
    def hello_admin():
       return 'Hello Admin'
    
    
    @app.route('/guest/<guest>')
    
    def hello_guest(guest):
       return 'Hello %s as Guest' % guest
    
    
    @app.route('/user/<name>')
    def hello_user(name):
       if name =='admin':
          return redirect(url_for('hello_admin'))
       else:
          return redirect(url_for('hello_guest',guest = name))
    
    
    if __name__ == '__main__':
       app.run(debug = True)

    打开浏览器并输入URL - http://localhost:5000/user/admin

    浏览器中的应用程序响应是:

    Hello Admin
    

    在浏览器中输入以下URL - http://localhost:5000/user/mvl

    应用程序响应现在更改为:

    Hel
    lo mvl as Guest

     四、结合html和post和get

    将以下脚本另存为login.html

    <html>
       <body>
          
          <form action = "http://localhost:5000/login" method = "post">
             <p>Enter Name:</p>
             <p><input type = "text" name = "nm" /></p>
             <p><input type = "submit" value = "submit" /></p>
          </form>
          
       </body>
    </html>

    hello.py如下:

    from flask import Flask, redirect, url_for, request
    app = Flask(__name__)
    
    @app.route('/success/<name>')
    def success(name):
       return 'welcome %s' % name
    
    @app.route('/login',methods = ['POST', 'GET'])
    def login():
       if request.method == 'POST':
          user = request.form['nm']
          return redirect(url_for('success',name = user))
       else:
          user = request.args.get('nm')
          return redirect(url_for('success',name = user))
    
    if __name__ == '__main__':
       app.run(debug = True)

    注意到,form表单method是post,input框的name是'nm'

    <p><input type = "text" name = "nm" /></p>

    在本地打开文件login.html

    summit以后,网页自动跳转到'/ success' URL,显示:welcome mvl

     五、渲染

    新建一个templates文件夹,用来放html文件

    先写hello.html文件

    <!doctype html>
    
    
    
    
    
      <h1>Hello {{ name }}!</h1>
    hello.py
    from flask import Flask, render_template
    app = Flask(__name__)
    @app.route('/hello/<user>')
    def hello_name(user):
       return render_template('hello.html', name = user)
    
    
    if __name__ == '__main__':
       app.run(debug = True)

    user是后端,本地的变量

    name是定义在前端html文件中的变量

    输入链接:http://127.0.0.1:5000/hello/jack, 会显示Hello jack!

    六、static文件夹作用
    用来放静态文件,如js文件和css文件
    https://www.w3cschool.cn/flask/flask_static_files.html
  • 相关阅读:
    python核心编程2 第八章 练习
    python核心编程2 第六章 练习
    python核心编程2 第五章 练习
    Redis
    CENTOS7错误:Cannot find a valid baseurl for repo: base/7/x86_6
    HTTP协议
    计算机网络知识点
    好记性不如烂笔头~
    一些算法题
    解决mysql插入数据时出现Incorrect string value: 'xF0x9F...' 的异常
  • 原文地址:https://www.cnblogs.com/qiezi-online/p/12859820.html
Copyright © 2011-2022 走看看