Flask基础之一
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Flask基础之一相关的知识,希望对你有一定的参考价值。
hello world#从flask这个包中导入Flask这个类
#Flask这个类是项目的核心,以后的很多操作都是基于这个类的对象
#注册url,注册蓝图都是这个类的对象
from flask import Flask
#创建一个Flask对象,传递__name__这个参数进去
#__name__这个参数的作用:
# 1.规定模板和静态资源的路径
# 2.以后的一些Flask插件,比如Flask_migrate,Flask_SQLAlchemy报错的话,哪么Flask就会通过这个参数找到具体的报错位置
app = Flask(__name__)
# @app.route()是一个装饰器,将对应的“/”路径应用到hello_world()这个函数上面
# 在访问“/”的时候在页面上返回Hello World
@app.route(‘/‘)
def hello_world():
return ‘Hello World!‘
# 如果作为一个主文件运行,哪么执行app.run()方法,也就是启动这个网站
if __name__ == ‘__main__‘:
app.run()**strong text**
debug模式
-
为什么要开启DEBUG模式?
- 如果开启了debug模式,name代码在调试过程中出现了异常,在浏览器页面中可以看到具体的报错信息,以及具体的错误代码位置,方便开发者调试。
- 如果flask开启了debug模式,name以后再python中修改任何代码,只要在pycharm中使用ctrl+s即可保存重载,不需要手动去重载程序
- 如何配置debug模式:
- app.run()
app.run(debug=True)
- app.debug
app.debug = True
- 配置信息方式(使用参数形式的方式)
app.config.update[DEBUG=True] #其实也就是update了config字典
- 通过配置文件的形式
- 创建一个config.py的配置文件,写入 DEBUG = True - 然后在你的app.py文件中写入 app.config.from_object(config) #即可读取配置文件中的DEBUG=True
debug PIN码
D:\MyDevSoftInstallDir\Python3\python3.exe D:/myflask/base/base.py * Restarting with stat * Debugger is active! * Debugger PIN: 177-952-649 * Running on http://127.0.0.1:5000/ (Press CTRL+C to quit)
然后在页面上调试代码的时候用到。
也是为了安全考虑。配置文件两种方式详解
- 第一种方式:
在项目主路径下创建config.py
DEBUG=True
然后在主项目里面去读取
config.py
里面的配置:from flask import Flask import config app = Flask(__name__) app.config.from_object(config)
- 第二种方式:直接读取文件的形式,也可以是普通的txt文件形式;这种方式不需要直接
import config
在项目主路径下创建config.py
DEBUG=True
然后在主项目里面去读取
config.py
里面的配置:from flask import Flask app = Flask(__name__) app.config.from_pyfile(‘config.py‘,silent=True) #静默模式加载配置文件(找不到配置文件不报错),文件的后缀名不可少
url与视图函数的映射
- 传递参数:
传递参数的语法是
/<参数类型:参数名称>/
,然后在视图函数中也要定义同名的参数
- 第一种方式:
- 参数的数据类型
- string:只接受字符串,没有任何“/或者\”的文本
- int:只接受整数
- float:只接受浮点数,整数都不行哈
- path:和
string
类似,但是接受斜杠 - uuid:只有接受符合
uuid
的字符赤岸,一般用作表的主键 - any:可以指定多种路径
接收用户传递参数的方式:
- 使用path的方式(将参数嵌入到路径中)
- 使用查询字符串的形式 (也就是通过
?key=value
的形式传递的,只能通过request.args.get的方式来获取)
如果页面想要做SEO优化的话,那么推荐使用path
的形式,反之就是查询字符串的形式
练习
from flask import Flask,request
app = Flask(__name__)
@app.route(‘/‘)
def hello_world():
return ‘Hello World!‘
@app.route(‘/list/‘)
def article_list():
return ‘article list!‘
@app.route(‘/p1/<article_id1>‘)
def article_detail(article_id1):
return "请求的文章是:%s" %article_id1
@app.route(‘/p2/<string:article_id2>‘)
def article_detail2(article_id2):
return "请求的文章是:%s" %article_id2
@app.route(‘/p3/<int:article_id3>‘)
def article_detail3(article_id3):
return "请求的文章是:%s" %article_id3
@app.route(‘/p4/<path:article_id4>‘)
def article_detail4(article_id4):
return "请求的文章是:%s" %article_id4
# import uuid
# print(uuid.uuid4())
@app.route(‘/p5/<uuid:article_id5>‘) #数据的唯一性,长度较长,有损效率(一般在用户表中使用)6a9221f6-afea-424a-a324-8ceaa5bdfc98
def article_detail5(article_id5):
return "请求的文章是:%s" %article_id5
@app.route(‘/p6/<any(blog,user):url_path>/<id>/‘)
def detail(url_path,id):
if url_path == "blog":
return "博客详情 %s" %id
else:
return "用户详情 %s" %id
#通过问号形式传递参数
@app.route(‘/d/‘)
def d():
wd = request.args.get(‘wd‘) #获取浏览器传递参数
return ‘通过查询字符串的方式传递的参数是,%s‘%wd #请求http://127.0.0.1:8080/d/?wd=php
if __name__ == ‘__main__‘:
app.run(debug=True,host=‘0.0.0.0‘,port=8080)
以上是关于Flask基础之一的主要内容,如果未能解决你的问题,请参考以下文章