本次组队小作业的开发项目是微信公众号的抢票系统。我负责的是管理员的一些后台操作以及公众号内通过点击按钮、回复文字可以实现的一些票务功能的后端开发。
以下是我在开发过程中遇到的问题、解决方法。

前期准备工作

开发环境是64位windows系统,MySQL版本为8.0.12,Django版本为1.9.5。由于django不支持python3.7,因此本次使用的是python3.6。
在之前的python课程中已经使用Django和MySQL搭建过网络框架,因此这部分内容并没有什么问题。

·出现问题

上一次搭建网络框架搭建是用VScode进行的,只能使用命令行开启本地服务器。而这一次下载了pyCharm Professional,pyCharm可以识别Django工程,直接在编译器内运行程序就可以开启服务器了。但是当下载完pyCharm,打开源码后,编译器却提示“未安装django模块”,运行也不能识别django项目。

·解决方案

在网上查询后才知道,pyCharm本身默认是在虚拟python环境内编译,而我的django模块安装在了本地python3.6中,因此编译时在虚拟环境中找不到这个模块。因此需要在文件设置中找到“project interpreter”选项,选择下面的“existing environment”选项,找到已经安装好的python.exe文件,点击确定即可。

管理员功能实现

本次需要实现的后端功能中,管理员功能需要提供8个接口,我负责其中“抢票菜单调整”、“活动详情”、“检票”三个接口的实现。

·出现问题(1)

大部分接口都要求登录状态可以使用,按照之前的学习经验,直接使用

from django.contrib.auth import authenticate
if self.request.user.is_authenticated:

就可以判断用户是否处于登录状态。但这次pyCharm却提示import的模块未被调用,request中也找不到user对象。

·解决方案(1)

https://www.cnblogs.com/NeedEnjoyLife/p/6842809.html
在这篇博客中找到了另一种实现方法:

from django.contrib.auth.decorators import login_required
# 需要登录之后才执行的函数上面可以加个@login_required
@login_required
def my_view(request):# ......

使用这个修饰符就可以判断用户是否在登录状态了。

·出现问题(2)

工程中调用的User, Activity, Ticket类都属于Django里的objects对象,但我对Django中objects的函数不是非常了解,因此一开始在查找符合要求的活动、票务时很迷茫,不知道该怎么进行操作。

·解决方案(2)

https://code.ziqiangxuetang.com/django/django-queryset-api.html
在这个django教程网站上看到了objects.get(), objects.filter()和objects.exclude()三个函数,样例代码中说这几个函数可以搜索符合条件的对象,于是我去搜索了这三个函数的用法。
https://www.cnblogs.com/silence181/p/8506444.html
这篇博客给出了objects.get()和objects.filter()的区别,下面为一个Activity类:

class Activity(models.Model):name = models.CharField(max_length=128)key = models.CharField(max_length=64, db_index=True)description = models.TextField()

用objects.get(name=‘hello’)去查会返回一个对象,如果没有或有多个符合要求的对象都会报错。
用objects.filter(name=‘hello’)去查则会返回一个对象列表,没有则返回[ ]。
因此需要查找所有符合要求的对象时需要使用filter函数。
objects.exclude(name=‘hello’)则是查找所有不是name='hello’的对象

公众号句柄实现

公众号句柄部分源码部分提供的有五个,我负责实现额外的“查票”和“退票”功能句柄。

·出现问题(1)

在查票的时候,需要判断当前活动是否已经开始,是否已经结束,然后在电子票描述中给用户提示。于是我想当然地import time,然后用当前时间time.time() 与 start_time.time() 和 end_time.time() 分别作差,就能判断活动在哪个阶段了。但是当运行程序时,编译器提示这里有错误,运行不通过。

·解决方案(1)

查询技术博客才知道,time.time()返回类型为当前时间的时间戳,也就是说其他两次函数调用作差是无效的。若想要得到两次的时间差,需要调用的是start_time.timestamp()函数。

·出现问题(2)

在写退票功能的时候,根据要求需要评论回复“退票+活动代称”,习惯性地使用了.is_text()函数获取回复文字,结果测试的时候发现回复“退票+活动代称”会自动回复“没有需要的信息”。

·解决方案(2)

回去重新看wechat的函数,发现多个词回复时is_text()不能接收到,需要使用is_text_command()来接收。接收到的输入用.split()分离出来,读取第二项即为活动代称。

...
return self.is_text_command('退票')
...activity_name = self.input['Content'].split()[1]

微信公众号抢票系统开发笔记相关推荐

  1. 微信公众号红包营销系统开发

    本文分两部分,一部分是介绍微信公众号红包系统开发的介绍的,另一部分是基于Java语言开发微信现金红包的例子.讲得不好的地方,请多多包涵.更多系统开发方面详情可以找-- 一.开发微信红包系统的优势: 1 ...

  2. 2021最新外卖霸王餐小程序、H5、微信公众号版外系统源码|霸王餐美团/饿了么系统 粉丝裂变玩源码下载

    2021年了,你还在用淘宝客吗?赶紧跟上互联网的大势吧,外卖cps就是cps人群趋势! 个人.个体.企业均可使用 外卖霸王餐小程序.H5.微信公众号版外系统源码|霸王餐美团/饿了么系统 粉丝裂变玩 2 ...

  3. 城乡投票源码php_PHP微信公众号投票活动系统源码 独立版

    PHP微信公众号投票活动系统源码 独立版,男神女神商家评选,微信独立后台,内附安装使用说明 1.支持关注公众号后报名参加. 2.支持用户自拍上传照片报名,照片可传1-5张. 3.IP限制,可以限制单I ...

  4. Golang 实战——微信公众号课程提醒系统

    Golang 实战--微信公众号课程提醒系统 起因 最早开始学 Golang 已经是整整一年前了,当时就把基础语法那一块学完了,然后拿 Golang 写了点 leetcode 题.之后由于项目里一直用 ...

  5. 【安信可A9G专题②】A9G在微信公众号上的定位功能笔记分享;

    本系列博客学习由 安信可科技 - 官方博客 技术分享,如有疑问请留言或联系邮箱. 1.A9G环境在windows上搭建并编译,串口打印 Hello GPRS 2.A9G在微信公众号上的定位功能笔记分享 ...

  6. 微信公众号(考试系统)出现额外的弹框,导致页面关闭,且不保存记录

    用户出现问题的场景 · 描述如下: 一个微信端考试平台,提交试卷的时候,让它confirm()弹框点了确定之后就提交表单. 当用户重复考试多次,或者交卷多次之后,在某次会多出现一个奇怪的弹框:大概内容 ...

  7. 微信公众号客服系统怎么生成能追踪效果的二维码?

    想要做好微信公众号的运营,专业的技能少不了,但是也要具有善于使用工具的能力,正所谓"工欲善其事必先利其器",一款好的客服系统,不但可以方便我们进行客户接待,还能帮助我们生分析公众号 ...

  8. 公众号分享页面php,微信公众号网页分享功能开发的示例代码

    现在每天都可以看到很多微信分享的链接上面有网站或者商家的自定义的分享标题,和分享链接的描述及分享出去的图像,例如下面的分享出去的链接: 上面这个是微信的js-SDK页面分享给微信好友在聊天列表中显示的 ...

  9. 微信公众号课程预约系统的功能需求分析

    微信公众号课程预约系统的功能需求分析 一.分校管理:培训机构一般都会有多个培训点,所以系统需要多场所或者说多分校管理.包括:场馆照片.场馆老师照片.场馆公告.新闻资讯. 二.课程管理:可以给每个办学点 ...

最新文章

  1. poj 2482 Stars in Your Window(线段树+离散化+线扫描)
  2. Javascript(JS)中的大括号{}和中括号[]详解
  3. nginx小总结(五)
  4. Spring Boot 集成 Swagger 生成 RESTful API 文档
  5. HDU1102 Constructing Roads 最小生成树
  6. Codeforces Round #741 (Div. 2) D2. Two Hundred Twenty One (hard version) 前缀和 + 分段模型
  7. sqlserver如何从周一计算周_纯零基础,花10周时间,完全搞定Python,有没有可能?...
  8. Linux的timerfd分析
  9. 浅谈软件性能测试中关键指标的监控与分析
  10. oracle导入多sheet的excel,excel表格数据导入oracle数据库-一个excel表格中有多个sheet,如何将其导入oracle数......
  11. 微软原版Windows 8 原版镜像
  12. 技嘉主板的 BIOS 问题解决
  13. 1024shop 各个微服务 UML时序图
  14. 10.2 校内集训 解题报告
  15. linux_主线程子线程退出关系
  16. 深善扶贫:深圳弘法寺启动“春风谷雨”送温暖行动
  17. (译)Xposed模块开发教程
  18. 爬虫——Scrapy框架案例一:手机APP抓包
  19. 【渗透实例】Fuzz大法好啊
  20. android 六边形布局,Android自定义View——一个可定制的六边形阵列

热门文章

  1. vue项目为什么选择svg图标
  2. AntV X6源码简析
  3. 关于构建与优化数据仓库架构与模型设计
  4. 递推练习之费解的开关
  5. Google学术搜索镜像网站搜集
  6. 【DL】第 1 章:神经网络相关核心概念
  7. PS2021安装方法(附个人详细安装教程)
  8. 【Android -- 架构】MVP 模式
  9. POJ1555-Polynomial Showdown
  10. showdown解析md文件