Falsk入门及基本操作

版权声明:共同努力,有不足的地方欢迎大家点出 https://blog.csdn.net/qq_42897012/article/details/84428504

flask入门

封装:tcp、ip http,socket,web开发框架

安装

pip install flask

(了解) flask 框架组成

在安装flask包时,flask依赖的相关包也会安装。

  • flask 核心代码、方法封装
  • jinja2 前段渲染值得语法
  • MarkupSafe 前端特殊字符转义,防止后端渲染时出现问题。
  • itsdangerous 加密和安全工具
  • Werkzeug 德语。http协议封装。

flask约定俗成架构

├─ model.py 类、数据库表结构 模型层
├── app.py 路由、方法、业务逻辑、渲染模板方法 控制层
├── static .css .js .jpg 静态资源文件
└── templates .html 网页静态文件 控制层

基本框架

from flask import Flask, render_template
app = Flask(__name__)		# 生成应用实例

# 路由route
@app.route('/')	# 匹配请求地址
def index():
	name = '小黑'
	age = 10
	return	render_template('index.html', name = name, age=age)


if __name__ == '__main__':
	app.run(host='0.0.0.0', port=8888)
"""
# render_template()  先获取HTML模板信息,插入后端变量,最终才返回给浏览器。
本质:
# return """
#         <html>
#             <body>
#                 <h1> hello {}
#             </body>
#         </html>
#     """.format(name)
"""	

完成上面的步骤一个简单的路由就创建完成了,输入点击运行栏中的网址就能直接访问了。

注意&小知识点

路由:

  1. 匹配固定的地址。
    ‘/’ → ‘//127.0.0.1:5000//127.0.0.1:5000 匹配根目录

flask命令行工具:
flask run --port=5001 --host=‘0.0.0.0’

app.run方法

app.run()方法:有几个参数

  • hots 并不是服务器的运行地址,服务器运行在本地,而是控制允许访问的客户端的地址段。默认是127.0。0.1只运行自己浏览器访问,不允许局域网其他人访问, 如果配置成’0.0.0.0’,表示接受任何ip地址的客户端,包括局域网其他人访问。
    其他人有的可以访问,包括局域网其他人访问,原因是我们现在运行的flask服务
  • port 端口,整数
  • (了解)threaded=True 开启多线程,局域网内接受多用户访问,实测也不够稳定。
  • debug=True, 开启debug模式,修改代码服务器自动重启。也可以app.config[‘DEBUG’] = True。看到日志Debug mode:on 目前是1.0.2版本。
    之前有一个版本刚才的设置并不会生效,原因是flask app运行时读取环境变量里的配置值,解决 set_FLASK_DEBUG=True。
    flask1.0.2版本,开启debug模式,终端输入。:
    set FLASK_APP = app.py
    set FLASK_ENV = development
    flask run
    优点:敏感变量存入系统环境变量,flask命令启动时会去环境变量中读配置。flask命令除了包含python命令的解释功能
    之前版本会在命令行看到服务自动重启。而1.0.2版本看不到重启信息,但是生效。

可能出现的错误

  1. not found 检查路由规则浏览器请求的url是否匹配
  2. Unicode decode error: postion 0 。flask 1.0。1源代码gethostaddr方法,如果windows主机名是中文就会报错。
  3. 修改代码,重启服务器,刷新浏览器后结果没有改变。原因ctrl+C后并没有真正结束之前的服务。cmd中运行相关命令可以看到5000端口运行多个服务。这样请求就到了之前的代码上。解决方法结束掉端口上的进程或重启。
  4. aap.py同级目录下新建了index.html, app.py文件中 return render_template(“index.html”),结果404。原因flask是一个完整的框架,有自己的规定,render_template
    函数会补全域名和template目录,所以这个函数里的参数并不是一个普通的相对路径。
    5.修改代码没有生效。原因是pycharm启动了多个程序实例。解决方法
    “”"

猜你喜欢

转载自blog.csdn.net/qq_42897012/article/details/84428504