flask web开发问题总结(1)

前言

文章是为了总结使用flask进行web开发的时候遇到的一些疑惑或者bug


QA

一、什么是蓝图,为什么要用蓝图

QA链接1
QA链接2
blueprint官方demo
一般情况下,开发小型网站应用的时候,我们只需要创建一个app.py和一个view.py然后让app跑起来即可,所有的url都统一在这个view.py文件中。使用蓝图本质上相当于将整个项目划分成多个独立的 ‘app’(共享app的配置),然后只需要实例化一个app应用实例,初始化扩展,将多个蓝图注册到app中,即可实现多个蓝图的管理。总结来说,蓝图的使用是将程序设计划分为多个模块,清晰简洁


二、flask_login模块是干什么的,如何使用

flask_login官方文档
demo文档
这个扩展提供的主要目的是帮助开发者管理登录,登出,和用户session。最大的用处就是对特定url设置登录要求,并且可以保密用户cookie。但是需要创建的ORM User模型继承自UserMixin。
一些注意事项

  • 必须实现login_manager.user_loader方法,可以用来告诉我们当前登入的是哪个用户
  • 指定登录的url login_manager.login_view()
  • 调用login_user(user)可以实现user用户的登入
  • 调用@login_required 会根据用户的is_authenticated()判断用户是否被授权
  • current_user这个变量表示的是当前请求的登陆用户,如果登陆了,那么它就是我们设置的 Model User 的对象

三、flask-sqlalchemy如何构建ORM模型和数据库连接?

使用sqlalchemy之前需要首先配置一些数据库连接信息,并注册到app.config中,详情可查看链接


四、app.config有什么用?如何生成app的config信息?

API文档
官网文档
简单来说就是通过app.config注册的配置信息可以在全局使用,注册方法详见API文档,可以定义一个类来统筹配置信息,要访问app的配置信息可以使用
current_app.config['name']来得到


五、flask request是什么,有什么用?

官网链接
API文档
flask request请求
reqest是从由浏览器向服务器传送的一个http请求,里面保存了目的URL,method,args,data等信息,
注意事项

  • 由于在一个线程或者进程中,flask只处理一个请求,所以request是一个全局变量
  • 可以通过一些函数处理特定事件 before_request() after_request()

六、flask 消息闪现怎么用?

官网链接
总结来说就是flash提供了一个给用户反馈的机制,一般会提供一个显示消息的模板(嵌入在普通的html中)
一些注意事项

  • 必须要给app设置secret_key app.secret_key = b'_5#y2L"F4Q8z\n\xec]/'
  • 可以闪现多个内容, 用categories
  • 重点参考官方文档

七、app.route()如果路由的url需要多个参数怎么写

stack overflow回答

@app.route('func1/<int:par1>/<float:par2>')
def func1(par1, par2):
    ...

八、如何使用flask提供文件下载接口

使用send_from_directory 或者send_file
官方API
需要使用绝对路径

app = Flask(__name__, static_folder='static')  

@app.route('/<path:filename>')  
def send_file(filename):  
    return send_from_directory(app.static_folder, filename)

九、如何使用flask_login进行登录认证



如何调用第三方API(不在web这个project中)

目前的想法是通过将API打包成package后,引入到项目中


继续更新中

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值