django后台和app客户端的搭建指南(python,android)。模拟手机获取验证码的请求
2017-07-30 20:52
711 查看
最近在学习django,就想着自己搭建一个django的服务器,自己写app的客户端,因为django是初学所以还是遇到了几个坑的废话不多先贴出项目地址:https://github.com/ymeddmn/PythonWebDemo
python群号码:387214990
django和android项目的搭建略过
2,host的配置如下图,此ip为本机ip地址,DEBUG=True
3,将此处的依赖注释,具体原因我暂时也没有搞明白
4,下面看一下实现请求的代码
这里用post方法获取到请求的参数:手机号,截取前四位返回为客户端
如果请求方法错误会返回给客户端错误信息,转json的操作请看demo
5,Url的配置如下
note:注意转json串的时候这里记得加上ensure_ascii=False,否则客户端中文会无法显示
其他代码请看项目中的 djangoproject
上面唯一需要注意的是 m = URLDecoder.decode(m, “utf-8”);
必须对请求下来的数据进行解码
对了,还要记得加上请求网络权限
下面看一下实现的效果图
请求前,button显示获取验证码
点击请求成功显示请求下来的json串
项目地址https://github.com/ymeddmn/PythonWebDemo
python群号码:387214990
python群号码:387214990
django和android项目的搭建略过
服务端django的项目配置
1,首先将我们创建的app模块配置在setting这里,本例获取验证码用的是logreg模块2,host的配置如下图,此ip为本机ip地址,DEBUG=True
3,将此处的依赖注释,具体原因我暂时也没有搞明白
4,下面看一下实现请求的代码
这里用post方法获取到请求的参数:手机号,截取前四位返回为客户端
如果请求方法错误会返回给客户端错误信息,转json的操作请看demo
from django.shortcuts import render from django.http import HttpResponse from app import utils, JsonUtil def getCode(request): code = 200 des = '' success = True; item = {} body = [] if utils.checkRequestMethon(request, 'POST'): phone = request.POST.get('phone') resCode = phone[0:4] print(resCode) item.setdefault('checkCode', resCode) body.append(item) print(body) else: success = False code = 0 des = '请求方法错误' if success: return HttpResponse(JsonUtil.toResultJson(code, body, '成功').encode('utf-8')) else: return HttpResponse(JsonUtil.toResultJson(code, body, des).encode('utf-8'))
5,Url的配置如下
note:注意转json串的时候这里记得加上ensure_ascii=False,否则客户端中文会无法显示
其他代码请看项目中的 djangoproject
客户端实现Android代码实现
客户端会在在按钮点击的时候用okhttp请求服务器获取验证码,将请求下来的结果显示到按钮上package demo.horse.com.djangoprojectclient.logreg; import android.Manifest; import android.os.Bundle; import android.os.Handler; import android.os.Message; import android.support.v4.app.ActivityCompat; import android.support.v7.app.AppCompatActivity; import android.view.View; import android.widget.Button; import com.squareup.okhttp.Call; import com.squareup.okhttp.Callback; import com.squareup.okhttp.FormEncodingBuilder; import com.squareup.okhttp.OkHttpClient; import com.squareup.okhttp.Request; import com.squareup.okhttp.Response; import java.io.IOException; import java.net.URLDecoder; import java.nio.charset.Charset; import demo.horse.com.djangoprojectclient.R; public class RegesterActivity extends AppCompatActivity implements View.OnClickListener { private Button btnCode; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_regester); initView(); } private void initView() { btnCode = (Button) findViewById(R.id.btn_getcode); btnCode.setOnClickListener(this); } @Override public void onClick(View v) { new Thread(new Runnable() { @Override public void run() { OkHttpClient client = new OkHttpClient(); FormEncodingBuilder builder = new FormEncodingBuilder(); builder.add("phone", "13691599815"); Request request = new Request.Builder() .url("http://192.168.1.100:8000/getCode/") .post(builder.build()) .build(); Call call = client.newCall(request); call.enqueue(new Callback() { @Override public void onFailure(Request request, IOException e) { e.printStackTrace(); } @Override public void onResponse(Response response) throws IOException { Message msg = handler.obtainMessage(); msg.obj = response.body().string(); handler.sendMessage(msg); } }); } }).start(); } Handler handler = new Handler(new Handler.Callback() { @Override public boolean handleMessage(Message msg) { String m = (String) msg.obj; try m = URLDecoder.decode(m, "utf-8"); btnCode.setText(m); } catch (Exception e) { e.printStackTrace(); } return false; } }); }
上面唯一需要注意的是 m = URLDecoder.decode(m, “utf-8”);
必须对请求下来的数据进行解码
对了,还要记得加上请求网络权限
下面看一下实现的效果图
请求前,button显示获取验证码
点击请求成功显示请求下来的json串
项目地址https://github.com/ymeddmn/PythonWebDemo
python群号码:387214990
相关文章推荐
- 腾讯微博Android客户端开发——自动获取验证码
- 5.腾讯微博Android客户端开发——获取请求用户授权Request Token
- Android集合SSH搭建服务器客户端请求
- Apache+MySQL+Python+Django在Windows下环境搭建指南
- android安卓APP获取手机设备信息和手机号码的代码示例
- Android如何获取手机上面已经安装的app
- 腾讯微博Android客户端开发——自动获取验证码(1)
- android集合SSH搭建服务器客户端请求
- 调用后台获取手机客户端提交的经纬度进行定位
- 用Android搭建客户端 手机和服务器交互开发实例
- Android 搭建客户端手机和服务端的交互
- 基于Linux搭建一个类似Qik手机录像直播平台(服务器端:feng streaming server + web server,客户端:Android手机应用)
- Android App请求获取Root权限
- Apache+MySQL+Python+Django在Windows下环境搭建指南
- 8.腾讯微博Android客户端开发——自动获取验证码(2) .
- android集合SSH搭建服务器客户端请求
- 8.腾讯微博Android客户端开发——自动获取验证码(2)
- Apache+MySQL+Python+Django在Windows下环境搭建指南(Python Web环境搭建)
- 8.腾讯微博Android客户端开发——自动获取验证码(2)
- Apache+MySQL+Python+Django在Windows下环境搭建指南