flask高级编程-鱼书Flask实践FLASK入门

flask|微信小程序开发工具使用篇

2019-06-11  本文已影响8人  杰伊_约翰

这篇文章呢不会有太多的技术性内容,,,,,

但还是耐心看下去吧!会有你想要的东西。。。

那么来说说一些小伙伴在导入其他人写好的小程序时一些鸡肋的问题吧!

比如:刚导入时你发现,,咦,,咋还报错呢,,,

这都好说,就看你是不是细心的人了,,,
就比如下图导入的时候把你自己的AppID填一下轻松解决。


image.png

或者你是个耿爽的人,直接在本地文件夹里复制好了小程序。那也没问题,很好改,,,,

大概的目录结构就是这样,找到你的project.config.json文件,找到一个名为“appid”的键名,改成你自己的appid。

image.png

可能还会有人说appid在哪里啊???
哈哈,,这种问题,,,,

自己看下图吧!

image.png image.png

而在这里你会看到还有一个AppSecret(小程序密钥),这个和appid同样的非常重要,在后续向微信发起请求获取openid的时候非常关键的点,如果你获取了秘钥一定要存储好,不然忘记了就得重置,不过目前我写小程序也就刚开始配置的时候写过一次。

到这里又牵出一层,那就是openid,它是一个微信给用户的唯一标识,是固定的一个字符串。没有这个你是无法用微信授权登录的。

而在微信公众平台-小程序端官方给的请求微信的网址你需要根据自己用的语言去拼接请求的URL地址。

请求地址

GET https://api.weixin.qq.com/sns/jscode2session?appid=APPID&secret=SECRET&js_code=JSCODE&grant_type=authorization_code

很明显的能看到这是一个GET请求的url地址,拿python举例,做过爬虫的都知道,用简单的requets方法发起请求(携带着此url),需要拼接的参数用“+”。比如你在flask开发时,把appid和AppSecret可以写在配置文件中,在请求的py文件中调用,拼接的时候直接用变量名就可以了。
例如:

import requests  #发起请求的方法之一
from flask import current_app  

app_id = current_app.config.get('APP_ID')
        app_secret = current_app.config.get('APP_SECRET')
        url = 'https://api.weixin.qq.com/sns/jscode2session?appid={0}&secret={1}&js_code={2}&grant_type=authorization_code' \
            .format(app_id, app_secret, code)

这里又延伸一个风流的操作——current_app是线程、协程隔离对象;也就是说我导入来自flask下面的current_app这个方法,也可以去调用我配置文件中的变量。
更多详细的关于current_app用法的解释请访问
https://blog.csdn.net/m0_37323771/article/details/80645100
此文章内有详细解说,以及其他几个方法(AppContext、RequestContext、Flask与Request之间的关系)。

我在拼接url时用的一个format方法,这个相信会python的小伙伴都知道,和“%”格式化输出差不多。但还是比较推荐用这个方法。

可以看到在url中我只写了从0开始它们的坐标,在后面format中依次写入上面所传过参数的变量名。

呼,,,说来到这也比较疲倦了,,内容可能会比较乱,但也许是你踩进的坑。

本文总结:flask框架适合开发大型项目,它是轻量级框架,很多东西你都得自己写,恰恰和Django相反,Django是所有的功能几乎都给你预先写好的,直接拿过来用就可以的。那么flask开发中你可能要安装一系列的第三方扩展包,从而来节省开发中不必要的代码,就比如flask_login,这个扩展简单来说节省了你在开发登录时候的表单中信息的判断,不然你在后端还要各种if和else的判断语句。以及flask提供的flask_wtf处理表单的扩展包也是很舒服,不用你在前端中手写form表单的标签了,直接在前端用类的形式就可以了。

上一篇 下一篇

猜你喜欢

热点阅读