flask 视图基础和url

浪子不回头ぞ 提交于 2019-12-10 02:18:31

FLASK介绍

一、Flask是一个用Python编写的Web应用程序框架。 它由 Armin Ronacher 开发,他领导一个名为Pocco的国际Python爱好者团队。 Flask基于Werkzeug WSGI工具包和Jinja2模板引擎。两者都是Pocco项目。

Web Server Gateway Interface(Web服务器网关接口,WSGI)已被用作Python Web应用程序开发的标准。 WSGI是Web服务器和Web应用程序之间通用接口的规范。

Werkzeug它是一个WSGI工具包,它实现了请求,响应对象和实用函数。 这使得能够在其上构建web框架。 Flask框架使用Werkzeug作为其基础之一。

jinja2是Python的一个流行的模板引擎。Web模板系统将模板与特定数据源组合以呈现动态网页。

Flask通常被称为微框架。 它旨在保持应用程序的核心简单且可扩展。Flask没有用于数据库处理的内置抽象层,也没有形成验证支持。相反,Flask支持扩展以向应用程序添加此类功能。

 

学习链接可以参照:https://www.w3cschool.cn/flask/flask_overview.html

 

二、url 与函数映射

from flask import Flask,request,render_template

app = Flask(__name__)

#http://127.0.0.1:5001/test/?uname=zhangsan&pwd=123456
@app.route('/test/')
def hello():
  if request.method =="GET":
    uname = request.args.get("uname")
    pwd = request.args.get("pwd")
    return "请求的参数是%s,%s" % (uname,pwd)
   elif request.method=="POST":
             uname = request.form.get("uname")
             pwd = request.form.get("pwd")
            return "提交的参数是%s,%s" % (uname,pwd)

@app.route('/test/',methods=["POST","GET"])
def hello1():
  if request.method =="GET":
    uname = request.args.get("uname")
    pwd = request.args.get("pwd")
    return render_template("login.html")
  elif request.method=="POST":
    uname = request.form.get("uname")
    pwd = request.form.get("pwd")
    return "提交的参数是%s,%s" % (uname,pwd)
if __name__ == '__main__':
app.run(port = 5001)

login.html

<!DOCTYPE html><html lang="en"><head>    <meta charset="UTF-8">    <title>Title</title></head><body><h4>登录页面</h4>    <form action="/test/" method="post">         用户名:<input type="text" name="uname"></br>         密  码:<input type="text" name="pwd"></br>         <input type="submit" value="提交">    </form></body></html>

 三、url_for函数使用

 from flask import Flask,request,url_for

'''
1.使用url_for函数构建url
(1)路径修改的概率高于函数
(2)ulr_for 接收两个以上参数第一个参数为函数名,第二个参数为url规则的命名参数,其余参数为可变参数
'''
app = Flask(__name__)

@app.route('/')
def hello():
  #num=1,pwd=123456为可变参数,根据需要填写
  return url_for("url",page=4,num=1,pwd=123456)

@app.route('/url/<page>/')
def url(page):
  print("路径函数")

if __name__ == '__main__':
  app.run(port = 5002)

 

四、页面跳转和重定向

from flask import Flask,render_template,redirect,request,url_for'''重定向:永久重定向302和暂时性重定向301'''app = Flask(__name__)@app.route("/login")def login():    return render_template("login.html")@app.route("/priviledge")def  privelege():     uname = request.args.get("uname")     #如果个人信息存在,返回个人信息即可     if uname  and  uname == "zhangsan":        return "这是个人中心"     #若果没有登录则重定向到登录首页     else:        return redirect(url_for("login"),code=302)if __name__ == "__main__":    app.run(port=5003)

 五、视图函数response

from flask import Flask,request,url_for,render_template,Responseapp = Flask(__name__)'''视图函数可以返回以下类型的值1.Response 对象及其子类对象2.字符串3.元组'''@app.route('/')def hello():    #返回元组,元组的格式响应体、状态码、头部,不必须按要写三个    #return  ("张三",200)    #返回字符串    #return   "<html>字符串</html>"    #返回【response对象及其子类对象】类型的数据    resp = Response("返回的是一个Response对象",202)    return  respif __name__ == '__main__':    app.run(port = 5004)
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!