最近有一个项目是做微信小程序的开发,由于也是刚刚学习了django,所以准备用django来做微信小程序的后台。
   由于没有系统的学习过小程序的开发,有些坑要自己慢慢地爬,特此将自己爬过的坑记录下来。

一、微信小程序页面


getinto.wxml

<!--pages/getinto.wxml-->
<view class='container'><view class="login-icon"><image class='login-img' src='../../img/images/loginLog.jpg'></image></view><view class='login-from'><view class="inputView"><image class='namelmage' src='../../img/images/name.png'></image><label class='loginLab'>账号</label><input class='inputText' bindinput='inputName' placeholder='请输入学号' name='username' type='text'/><view class='line'></view><view class="inputView"><image class='keylmage' src='../../img/images/name.png'></image><label class='loginLab'>密码</label><input class='inputText'password="true" bindinput='inputPwd' placeholder='请输入密码' name='passwd'/></view></view><view class="login"><button class='loginbtn' type='primary ' size='{{primarysize }}'loading='{{loading}}' plain="{{plain}}"bindtap="log">登录</button><view class='info'>{{result}}</view></view></view>
</view>

这里主要是注意一下账号和密码的view标签里的bindinput和登录按钮的bindap,这是绑定js函数的一个标志。

getinto.wxss

page{height: 100%;
}
.container{height: 100%;display:flex;flex-direction: column;padding: 0;box-sizing: border-box;background-color: #f2f2f2}
.login-icon{flex: none;
}
.log-img
{width: 750rpx;
}
.login-from{margin-top: 20px;flex:auto;height: 100%;
}
.inputView{background-color: rgba(223, 205, 205, 0.767);line-height: 44px;width: 300px;}
.loginLab
{margin: 15px 15px 15px 10px;color: #545454;font-size: 14px;}
.inputText{flex: block;float:right;text-align: left;margin-right: 22px;margin-top: 11px;color: #574545;font-size: 14px;
}
.namelmage,.keylmage{margin-left: 22px;
width: 14px;
height:14px;}
.line{width: 100%;height: 1px;background-color: #cccccc;margin-top: 1px;
}
.login{width: 100%;height:auto;margin-top: 0px;margin-bottom: 0px;padding-bottom:0px; }
.loginbtn{background-color: #28d130; width: 80%;margin-top: 35px;
}.info{text-align: center;
}

getinto.js

const app = getApp()Page({data:{        //此处定义本页面中的全局变量result: '',        username: '',passwd: ''},inputName: function(e){    // 用于获取输入的账号this.setData({username: e.detail.value  //将获取到的账号赋值给username变量})},inputPwd: function (e) {      // 用于获取输入的密码this.setData({passwd: e.detail.value    //将获取到的账号赋值给passwd变量})},log: function(e){       //与服务器进行交互wx.request({url: 'http://192.168.137.1:8000/login', //获取服务器地址,此处为本地地址header:{"content-type": "application/x-www-form-urlencoded"     //使用POST方法要带上这个header},method: "POST",data: {     //向服务器发送的信息username: this.data.username,passwd: this.data.passwd},success: res => {if (res.statusCode == 200) {this.setData({result: res.data //服务器返回的结果})}}})}
})

这里有几个注意点:
   1、小程序通过POST请求服务器,一般情况下记得要用header:{
“content-type”: “application/x-www-form-urlencoded” }
   2、小程序使用真机调试的时候,访问localhost需要手机与电脑处在同一局域网下,并且url要用电脑的局域网ip,我的就是192.168.137.1。

二、Django

首先,这是我的项目结构目录:

models.py

from django.db import models# Create your models here.class User(models.Model):# 用户账号、要唯一userAccount = models.CharField(max_length=20, unique=True)# 密码userPasswd = models.CharField(max_length=20)# 昵称userName = models.CharField(max_length=20)# 手机号userPhone = models.CharField(max_length=20)# 地址userAdderss = models.CharField(max_length=100)# 头像路径userImg = models.CharField(max_length=150)# 等级userRank = models.IntegerField()# touken 验证值,每次登陆后都会更新userToken = models.CharField(max_length=50)@classmethoddef createuser(cls, account, passwd, name, phone, address, img, rank, token):u = cls(userAccount = account, userPasswd = passwd, userName = name, userPhone = phone, userAdderss = address,\userImg = img, userRank = rank, userToken = token)return u

构造User表,可以直接迁移到数据库中

views.py

from .models import Userfrom django.http import HttpResponsedef login(request):if request.method == "POST":username = request.POST.get('username')passwd = request.POST.get('passwd')try:user = User.objects.get(userAccount=username)if user.userPasswd != passwd:return HttpResponse("用户名或密码错误")except User.DoesNotExist as e:return HttpResponse("用户名不存在")# 登录成功print(username)print(passwd)return HttpResponse("登录成功!")else:return HttpResponse("请求错误")

此处,Django要用python manage.py runserver 0.0.0.0:8000命令来运行,小程序返回的数据可以用request.POST.get(‘username’)获取,再从数据库中获取到username的信息,信息配对成功,则登录成功。

这里主要讲了一下小程序的坑,有时间我还想写一下Django的一些学习经验。

总得来说,总算迈出了第一步,但这还只是简单的数据交互,真正的登录功能还要实现数据加密等等,路漫漫其修远兮呀!

第一次用Markdown写技术博客,还有很多功能不会,连代码高亮都没实现,希望在下次写博客之前能找到比较实用的方法吧!

微信小程序+Django—登录界面交互相关推荐

  1. 微信小程序的登录界面实现

    微信小程序的登录界面实现 <view class="container"><view class="wrapper"><view ...

  2. 微信小程序授权登录界面

    微信小程序授权登录界面 原先用的 wx.getUserInfo(Object object) ,现已改革 现用的 wx.getUserProfile(Object object),获取用户信息.每次请 ...

  3. <微信小程序>登录界面实现密码输入错误3次,30分钟不允许该账号登录

    当时面临如此需求,实在无从下手,后自己想了一个灵活的方法进行面对,特此记录,希望以后不会看不懂自己的代码 登陆界面设置 这个百度一下就可以,与数据库交互的登录界面很是简单,由于本项目要求不可注册,故只 ...

  4. 微信小程序开发登录界面mysql_微信小程序 欢迎界面开发的实例详解

    微信小程序 欢迎界面 市面上大多数的app都会有一个欢迎界面,下面将演示如何通过微信小程序实现一个欢迎界面. 下面将会按照以下的顺序介绍: 布局的实现 逻辑的实现 样式的实现 1.布局的实现 整个布局 ...

  5. 微信小程序 用户登录界面,用户名无法切换输入法问题解决方法

    [问题描述] iOS下,用户登录界面,两个相邻的input,第一个输入用户名,第二个输入密码(password),若用户手机中只有英文输入法和搜狗输入法的话,点击第一个用户名输入框,会发现出来的键盘是 ...

  6. Springboot实现微信小程序注册登录及微信登录

    运行环境 jdk1.8+eclipse+tomact 8.5+maven3.5+springboot 2.0.1 微信开发者工具 数据库 一张表三个字段 CREATE TABLE `user` (`u ...

  7. 微信小程序-注册登录功能-本地数据保存-页面数据交替

    Title:微信小程序-注册登录功能-本地数据保存-页面数据交替 完美-小程序登录注册功能.rar-- 访问码:yqa5 1.主页面 主页面login.js代码 // pages/login/logi ...

  8. 微信小程序保持登录状态(使用缓存)

    一般来说,一个app在第一次进入时需要进行注册和登录的操作,之后再打开无需再登录即可直接进入app,即保持登录状态.此处使用微信小程序的数据缓存来做到登陆状态的保持. 1 相关API 首先需要了解几个 ...

  9. 基于Uniapp+SpringBoot实现微信小程序授权登录

    手把手教你做微信小程序授权登录交互 一.uni.login请求临时code 二.uni.request向后台交换数据 三.源代码 前台:在GetUserInfo中添加接口 后台:SpringBoot后 ...

最新文章

  1. JAVA WEB快速入门之从编写一个JSP WEB网站了解JSP WEB网站的基本结构、调试、部署...
  2. SQL存储过程(☆)
  3. 聚类算法 sklearn k_means (返回一维数据的最优聚类)
  4. codeforces 689B Mike and Shortcuts 最短路
  5. 45 FI配置-财务会计-固定资产-一般评估-指定折旧条件转移
  6. linux指法教程,Linux的vim的使用
  7. MySql(16)——Spring data jpa mysql 乐观锁 与 AtomicInteger
  8. 51nod 1833 状压dp加一点图论
  9. 微软已成全球SaaS老大,谁将成为中国SaaS行业龙头
  10. python可以用于工业机器人编程与操作_工业机器人用什么语言编程?
  11. STM8L051低功耗实现
  12. models.TABLE.objects.filter()与models.TABLE.objects.get()的区别
  13. SingleShot姿态估计部署教程
  14. C语言—字符串函数和内存函数
  15. R语言:修改chart.Correlation()函数绘制相关性图——完美出图
  16. 临床血液学综合练习题库【1】
  17. 企业微信oauth认证_微信企业号OAuth2验证接口实例(使用SpringMVC)
  18. wish商户平台登录网址中国版【wish圈】
  19. [Revit二次开发] 轴网交点创建柱子
  20. 「力扣数据库」183. 从不订购的客户(第五天)

热门文章

  1. 基于Andriod的连锁药店管理系统APP-计算机毕业设计
  2. 腾讯COS例程实践之云函数列举COS文件
  3. ORACLE表空间的碎片整理
  4. 政考网:正确选择公务员考试培训机构
  5. windows系统如何解决卸载matlab7时总提示exception calling main
  6. 数控加工中心导致丝杠振动的原因分析
  7. C# System.Diagnostics.Stopwatch 记录程序执行时间
  8. 屏幕截图--Take-ScreenShot分析
  9. 希捷数据恢复 -移动硬盘的数据恢复-天津数据恢复
  10. 事件循环机制 (Event Loop)