**
Flask是目前学习python遇到的第一个框架,一种轻量级的web框架
**
后面还有ajax,diango等着我去学习。下学期就要去实习了,时间好紧张啊。。公司一般都是要求会用这几个框架开发服务器。感觉学到这里才是python入门的开始…
由于我自学的时间比较短,很多基础不太扎实,上一次有一个电话面试,问我什么是http协议等等等。。。。我都一时间答不上来,虽然学过了,但是却没有巩固好,这是很致命的问题,所以现在我把每天学的都必须巩固一遍。
动态网页&静态网页
1.动态网页可以和服务器交互,可以根据服务器的一些指令进行随时修改页面。
2.静态网页不能和服务器交互
WEB和服务器
Web(html,css,js)
服务器:
1.什么是服务器? 能够给用户提供服务的计算机,由硬件+软件组成
2.硬件:一台主机即可
软件:一个能够处理用户请求并给出响应的程序(在Linux和windows都可以)
比较有名的服务器软件:
1.APACHE
2.TOMCAT(学校学java的时候用到过)
3.IIS - Internet Information Service
4.Nginx
那服务器有什么作用呢?
1.存储WEB上的信息
2.能够处理用户的请求(request)并给出响应(response)
3.执行处理程序
4.具备一定的安全功能
什么是框架
1.框架是一个为了解决开放性问题而存在的程序结构
2.Python WEB 框架
1.Flask - 轻量级框架
2.Webpy - 轻量级框架
3.Tornado - 异步框架
4.Django - 重量级框架
3.框架模式
1.MTV
M:Models,模型层,与数据库打交道 - ORM
T:Templates,模板层,前端页面
V:Views,视图层,处理与用户打交道的内容
2.MVC
M:Models,模型层,与数据库打交道 - ORM
V:Views,视图层,前端页面
C:Controller,控制器,处理请求和响应
M --- M
T --- V
V --- C
Flask框架
1.什么是Flask
Flask是一个基于Python并且依赖于Jinja2模板引擎和
Werkzeug WSGI 服务的一个微型框架(Micro Framework)
安装flask
1.查看已安装的Flask版本
进入到Python交互模式
>>> import flask
没反应:正确
有反应:没安装 或 安装有问题
>>> flask.__version__
2.安装Flask
sudo pip3 install flask
Flask–路由(route)
1.什么是路由
路由是为了匹配用户的请求地址以及对应的视图函数
说的通俗点,没有路由就连接不上网络,导致程序无法运行
在 Flask 中,路由是通过 @app.route() 来表示的()里面是要连接的地址
语法
语法:
from flask import Flask
app = Flask(__name__)
@app.route('/地址')
def funName():
#业务实现
return "" # 响应给客户端浏览器的内容
举个例子:(’/’) 就等同于 (’/127.0.0.1:5000’) 为了方便通常都用/表示
注意:一定要有return 返回值 不然网页没法响应 (在网页上会显示return的内容)
1. http://127.0.0.1:5000
@app.route('/')
def index():
return "这是首页"
2. http://127.0.0.1:5000/admin/login
@app.route('/admin/login')
def login():
return "xxxx"
一个最简单的程序
from flask import Flask
app = Flask(__name__)
@app.route('/')
def app1():
return "第一个程序"
if __name__ =="__main__":
app.run(debug=True)
运行程序如下图所示:
在网页上输入127.0.0.1:5000
带参数的路由
1.基本带参路由
参数语法:通过 <参数名>
@app.route('/show/<name>')
def show(name):
# name 表示的就是路由中的name参数值
pass
2.带多个参数的路由
@app.route('/show/<name>/<age>')
def show(name,age):
#name 表示的就是路由中的name参数值
#age 表示的就是路由中的age 参数值
from flask import Flask
app = Flask(__name__)
@app.route('/test/<name>/<age>')
def app2(name, age):
print(name, age)#打印在终端
return "name:%s, age:%s" % (name, age)
if __name__ =="__main__":
app.run(debug=True)
127.0.0.1:5000/test/name/age name和age 是可以变的 随便自己输入
指定参数类型的路由
@app.route('/show/<int:num1>')
def show(num1):
num1 允许直接当成整数去处理
int:称为 "类型转换器"
Flask中所支持的类型转换器:
类型转换器 作用
缺省 字符串,不能包含斜杠(/)
int: 整数
float: 浮点数
path: 字符串,允许包含斜杠(/)
来一个例题加深理解:写一个输入两个数字a,b,网页上显示 ab的加减乘除结果
from flask import Flask
app = Flask(__name__)
@app.route('/test/<int:num1>/<int:num2>')
def app2(num1, num2):
r1 = num1 + num2
r2 = num1 - num2
r3 = num1 * num2
r4 = num1 / num2
r5 = num1 % num2
#<br>换行 ""里可以添加html标签
str = "<h1>%s + %s = %s<br></h1>" % (num1, num2, r1)
str += "%s - %s = %s <br> "% (num1, num2, r2)
str += "%s * %s = %s <br>" % (num1, num2, r3)
str += "%s / %s = %s <br>" % (num1, num2, r4)
str += "%s %% %s = %s" % (num1, num2, r5)
return str
if __name__ =="__main__":
app.run(debug=True)
在网页上输入127.0.0.1:5000/test/10/5
多url的路由匹配
1.什么是多url的路由匹配
多个访问地址最终匹配到同一个视图处理函数
需求:
http://127.0.0.1:5000
http://127.0.0.1:5000/index
http://127.0.0.1:5000/default
访问任何一个地址,要在网页中输出:
这是首页
语法:
@app.route('/地址1')
@app.route('/地址2')
.... ....
def index():
return xxxx xxxx
例:
@app.route('/')
@app.route('/index')
@app.route('/show')
def index():
return "这是首页"


做个小练习
@app.route('/')
@app.route('/index')
@app.route('/index/<int:num>')
@app.route('/<int:num>')
def show(num=1): # num不存在时,默认为1
return "你现在访问的是第%s页" % num



先写到到这,下篇写模板.
来源:CSDN
作者:loveuZzh
链接:https://blog.csdn.net/tretrehyyy/article/details/103573601