第一个flask程序讲解:
-
第一次创建项目的时候,要添加flask的虚拟环境。添加虚拟环境的时候,一定要选择到python这个执行文件。
比如你的flask的虚拟环境的目录在/User/Virtualenv/flask-env/bin/python。 -
flask程序代码的详细解释:
Copy # 从flask这个框架中导入Flask这个类 from flask import Flask # 初始化一个Flask对象 # Flaks() # 需要传递一个参数__name__ # 1. 方便flask框架去寻找资源 # 2. 方便flask插件比如Flask-Sqlalchemy出现错误的时候,好去寻找问题所在的位置 app = Flask(__name__)
@app.route是一个装饰器
@开头,并且在函数的上面,说明是装饰器
这个装饰器的作用,是做一个url与视图函数的映射
127.0.0.1:5000/ -> 去请求hello_world这个函数,然后将结果返回给浏览器
@app.route('/')
def hello_world():
return '我是第一个flask程序'如果当前这个文件是作为入口程序运行,那么就执行app.run()
if name == 'main':
app.run()
启动一个应用服务器,来接受用户的请求
while True:
listen()
app.run()
Copy
设置debug模式:
-
在app.run()中传入一个关键字参数debug,app.run(debug=True),就设置当前项目为debug模式。
-
debug模式的两大功能:
- 当程序出现问题的时候,可以在页面中看到错误信息和出错的位置。
- 只要修改了项目中的
python
文件,程序会自动加载,不需要手动重新启动服务器。
使用配置文件:
-
新建一个
config.py
文件 -
在主app文件中导入这个文件,并且配置到
app
中,示例代码如下:Copy import config app.config.from_object(config)
-
还有许多的其他参数,都是放在这个配置文件中,比如
SECRET_KEY
和SQLALCHEMY
这些配置,都是在这个文件中。
url传参数:
-
参数的作用:可以在相同的URL,但是指定不同的参数,来加载不同的数据。
-
在flask中如何使用参数:
Copy @app.route('/article/<id>') def article(id): return u'您请求的参数是:%s' % id
- 参数需要放在两个尖括号中。
- 视图函数中需要放和url中的参数同名的参数。
反转URL:
-
什么叫做反转URL:从视图函数到url的转换叫做反转url
-
反转url的用处:
- 在页面重定向的时候,会使用url反转。
- 在模板中,也会使用url反转。
页面跳转和重定向:
-
用处:在用户访问一些需要登录的页面的时候,如果用户没有登录,那么可以让她重定向到登录页面。
-
代码实现:
Copy from flask import redirect,url redirect(url_for('login'))
url链接:使用url_for(视图函数名称)
可以反转成url。
加载静态文件:
-
语法:
url_for('static',filename='路径')
-
静态文件,flask会从
static
文件夹中开始寻找,所以不需要再写static
这个路径了。 -
可以加载
css
文件,可以加载js
文件,还有image
文件。Copy 第一个:加载css文件 <link rel="stylesheet" href="{{ url_for('static',filename='css/index.css') }}"> 第二个:加载js文件 <script src="{{ url_for('static',filename='js/index.js') }}"></script> 第三个:加载图片文件 <img src="{{ url_for('static',filename='images/zhiliao.png') }}" alt="">
get请求和post请求:
-
get请求:
- 使用场景:如果只对服务器获取数据,并没有对服务器产生任何影响,那么这时候使用get请求。
- 传参:get请求传参是放在url中,并且是通过
?
的形式来指定key和value的。
-
post请求:
- 使用场景:如果要对服务器产生影响,那么使用post请求。
- 传参:post请求传参不是放在url中,是通过
form data
的形式发送给服务器的。
get和post请求获取参数:
-
get请求是通过
flask.request.args
来获取。 -
post请求是通过
flask.request.form
来获取。 -
post请求在模板中要注意几点:
- input标签中,要写name来标识这个value的key,方便后台获取。
- 在写form表单的时候,要指定
method='post'
,并且要指定action='/login/'
。
-
示例代码:
Copy <form action="{{ url_for('login') }}" method="post"> <table> <tbody> <tr> <td>用户名:</td> <td><input type="text" placeholder="请输入用户名" name="username"></td> </tr> <tr> <td>密码:</td> <td><input type="text" placeholder="请输入密码" name="password"></td> </tr> <tr> <td></td> <td><input type="submit" value="登录"></td> </tr> </tbody> </table> </form>