一:Flask简介
Flask是一个微型的Python Web框架。 安装方式: pip install flask
第一个Flask程序:
from flask import Flask
app = Flask(__name__) # 实例化程序实例
@app.route("/hello")
def hello():
return "<h3 style='color:red'>你好,欢迎学习Flask课程!</h3>"
if __name__ == '__main__':
app.run(host='0.0.0.0',port=8000,debug=True)
二:请求处理函数的返回值
1. 返回字符串 @app.route("/hello") def hello(): return "Hello Flask"
2. 返回字符串加上状态码
@app.route("/hello")
def hello():
return "Hello Flask",999
3. 返回响应对象
在Flask中,通过make_response()函数获取响应对象,再通过调用响应对象
的相关方法,设置一些值(eg:设置Cookie),最后返回响应对象
@app.route('/hello')
def hello_world():
response = make_response("<h3 style='color:green'>这是通过响应对象返回的响应文本</h3>")
response.set_cookie('fruit_cookie','Apple')
return response
三:URL捕获参数、转换参数数据类型
通过尖括号"<>"捕获URL中的参数,并可以在捕获后转换参数的数据类型,最后 传递到修饰的请求处理函数中 @app.route('/student/<name>/int:age') def introduce(age,name): return '我的名字叫%s,年龄是:%d'%(name,age)
四:flask-script插件
flask-script插件的作用:启动服务器时,动态地传递启动参数 安装方法:pip install flask-script
使用方法:
1. 将程序实例对象传入Manager中的构造方法中
app = Flask(__name__) # 实例化程序实例对象
manager = Manager(app=app)
2. 通过manager对象启动应用
manager.run() # 通过Manager对象启动服务器
3. 启动应用时,在命令行动态传入启动参数
python xxx.py runserver -h 允许访问的主机 -p 开放的端口号
常用的启动参数:
-h 允许访问的主机
-p 开放的端口号
-d 开启调试
-r 自动监测程序改动,自动重启服务器
-R 不监测程序改动
五:重定向
使用redirect()函数完成重定向的功能, 可以重定向到外网站,例如: return redirect("http://www.baidu.com")
也可以重定向到本网站的另一个路由地址:
return redirect("/hello")
注意:可以通过将redirect()与url_for()结合的方式,进行重定向。
url_for(endpoint, **values)
其中:endpoint:是重定向地址对应的函数名
values: 传递给重定向地址的参数(以关键字参数的方式传递)
例如:
return redirect(url_for("jogging",name=sportname,weather=weather))
六、Nginx的配置
一:Nginx简介
Nginx是一个高性能的反向代理服务器。
反向代理服务器在服务器端,代理的是服务器。
二:Nginx安装(以Ubuntu16.04操作系统为例)
1. 在apt源文件/etc/apt/sources.list文件的末尾,添加
deb http://nginx.org/packages/ubuntu/ xenial nginx
deb-src http://nginx.org/packages/ubuntu/ xenial nginx
2. 从"http://nginx.org/keys/nginx_signing.key"下载签名key,并注册添加
wget http://nginx.org/keys/nginx_signing.key
sudo apt-key add nginx_signing.key
3. 更新源,并安装nginx
sudo apt-get update
sudo apt-get install nginx
三:启动、停止nginx服务 1. 查看当前的nginx进程 ps -ef | grep nginx
2. 使用默认配置文件启动nginx
sudo nginx
3. 使用指定路径的配置文件启动nginx
sudo nginx -c 配置文件路径
4. 停止nginx服务
sudo nginx -s quit
sudo netstat -apn | grep 80
查看
七、Nginx的部署项
1. 安装uwsgi服务器
pip install uWSGI
2. 在项目根目录下创建一个uWSGI服务器的配置文件uwsgi.ini
3. 启动uWSGI服务器
uwsgi --ini uwsgi.ini
4. 配置自定义nginx的配置文件,配置动静分离
eg:
location / {
include /etc/nginx/uwsgi_params;
uwsgi_pass localhost:8010;
}
location /static {
alias /var/www/MyAxf/static/;
}
5. 停止nginx服务、并重新启动nginx
sudo nginx -s quit
sudo nginx -c 自定义nginx配置文件路径
eg:
sudo nginx -c /home/tianpan/nginx.conf
八、附录
from flask import Flask, make_response, redirect, url_for
from flask_script import Manager
app = Flask(__name__) # 实例化程序实例对象
manager = Manager(app=app)
@app.route('/hello')
def hello_world():
response = make_response("<h3 style='color:green'>这是通过响应对象返回的响应文本</h3>")
response.set_cookie('fruit_cookie','Apple')
return response
@app.route('/student/<name>/<int:age>')
def introduce(age,name):
return '我的名字叫%s,年龄是:%d'%(name,age)
@app.route("/sport/<name>/<weather>")
def jogging(name,weather):
return "<h3 style='color:blue'>I like %s in %s weather~~~</h3>"%(name,weather)
@app.route("/welcome/<sportname>/<weather>")
def welcome(sportname,weather):
print("Welcome to Xi'An ")
# return redirect("http://www.baidu.com")
return redirect(url_for("jogging",name=sportname,weather=weather))
if __name__ == '__main__':
manager.run() # 通过Manager对象启动服务器