安装
windows安装pipenv
pip install pipenv
配置系统环境变量
这就是虚拟环境的所在文件夹
cd进入想要创建环境的文件夹
-
指定版本,前提是电脑要有这些版本
- pipenv --three 会使用当前系统的Python3创建环境
- pipenv --two 会使用当前系统的Python2创建环境
- pipenv --python 3.7指定某一Python版本创建环境
-
pipenv shell 激活虚拟环境
-
exit() 退出环境
-
pipenv --rm 删除环境
-
pip install flask安装flask框架
-
pipenv uninstall --all 卸载全部包,并从Pipfile中删除
在选择的文件夹中会出现Pipfile文件
在pycharm中创建flask
使用
url与函数的映射
# http://127.0.0.1:5000 / url
@app.route('/')
def hello_world():
return 'Hello World!'
如果要映射用户的Id,那么使用
@app.route('/article/<id>/')
def article(id):
return '%s article detail' % id
这里的尖括号<>是固定语法
映射的数据也可以指定类型:
- int:整型
- float:浮点型
- string:默认的数据类型,不接受斜杠 /
- path:可以接受任何数据类型,也可以接受斜杠/
- any:可以指定多种路径
- uuid:uuid类型的字符串
@app.route('/lulu/<any(book,list):aid>/')
def hello(aaa):
#这里注意要加反斜线 比较严谨 如果不加 在页面上,url加了反斜线会报错
return "咕噜噜{}".format(aaa)
通过?来传递参数
from flask import request
@app.route('/wd')
def baidu():
return request.args.get("name")
#可以接受?的参数 wd?name=99dfa
url_for
它可以通过函数名来获取url
from flask import Flask,url_for
@app.route('/lulu/:aid/') #int float
def hello(aid):
return "咕噜噜{}".format(aid)
@app.route('/')
def he():
print(url_for("hello",aid=2,name="ABCDE",pwd="98765"))
return "哈哈哈哈"
指定http方法
在@app.route()中可以传入一个关键字参数methods来指定本方法支持的HTTP方法,默认情况下,只能使用GET请求
@app.route('/login/',methods=['GET','POST'])
def login():
return 'login'
页面跳转和重定向
重定向分为301永久重定向和302临时重定向。
- 301永久重定向:新网址完全继承旧网址
例如:进入 www.jdong.com 会被替换成www.jd.com 网址变了 - 302临时重定向:网址不变,只是页面的内容变成了替换的网址
例如:在未登陆的网页操作时,需要登陆,页面会变成登陆页面,但网址不变
重定向通过 redirect(location,code=302),这里的location表示要重新指向的Url,code=302是默认,默认是临时重定向,也可改为301永久重定向。
@app.route('/signin/', methods=['GET','POST'])
def login():
return 'login page'
@app.route('/profile/',methods=['GET','POST'])
def profile():
name = request.args.get('name')
if not name:
return redirect(url_for('login'))
else:
return name
返回方式
- 字符串
return "about page"
- 元组格式
(response,status,headers)
//如果元组中包含多个元素,也仅仅输出第一个元素。status可指定状态码
//例:return ('not found',404) 这是元组的形式返回 404是设置的状态码
//这里加不加括号都可以啦
- Response对象
from werkzeug.wrappers import Response
return Response=('about page',status=200,content_type='text/html)
//本质与直接返回字符串无异,可以设置状态码和mime类型
- make_response
from flask import Flask,make_response
return make_response("about page")
- 列表,元组,字典
return ['a','b','c','d']
//返回a,可以设定返回的元素下标: ['a','b','c','d'][2] 返回 c
return ('a','b','c','d')
//返回a,可设置返回元素的下标
return {'key1':'value1','key2':'value2'}
//返回字典