web开发框架
web第一个框架
flask最小程序
from flask import Flask
app = Flask(__name__)
app.run(debug=True)
右键运行
copy URL,在浏览器打开
可见报错404,请求出错,未找到
因为是只设计了一个网站,但是还没有地址,无路径请求,不知谁去处理请求。
路由映射
from flask import Flask
app = Flask(__name__)
#路由用一个单斜杠,代表这是首页
#当前端页面地址输入/时,请求由路由关联的视图函数处理
@app.route("/")
#它叫视图函数,必须有返回值,不能返回None
#用户访问一个地址,意图是要获取信息
def index():
return "index page"
@app.route("/abc")
def abc():
return "hello"
#开发时将debug=True打开,当代码有更新时自动重启
#发布到线上时要把它关掉
app.run(debug=True)
对应首页和abc页的请求地址:
http://127.0.0.1:5000/
http://127.0.0.1:5000/abc
host地址设置:
127.0.0.1代指本地,在电脑的host文件中定义。
host是静态域名和IP地址映射文件。
可以在run方法中指定可访问的IP和端口:
app.run(host="127.0.0.2",port=8006,debug=True)
不限制访问的域名时,可用0.0.0.0代替,like this
app.run(host="0.0.0.0",port=8006,debug=True)
路径中加变量-动态URL
@app.route("/abc/<username>")
def name(username):
return "hello,{0}".format(username)
静态文件
静态展示一张图片
@app.route("/img")
def img():
return "<html><head><title>图片而已</title></head><body><img src='/static/桌面.jpg' /></body></html>"
动态展示图片
import os
import random
@app.route("/poker/")
def poker():
list = os.listdir("/static/poker/")
print(list)
image = random.choice(list)
return "<html><head><title>图片而已</title></head><body><img src=/static/poker/" + image + "/></body></html>"
模板
前端最终会返回一个HTML页面
flask.render_template
请求
flask.request