返回顶部
首页 > 资讯 > 服务器 >怎么使用python实现android的服务器端
  • 312
分享到

怎么使用python实现android的服务器端

2023-07-02 16:07:49 312人浏览 泡泡鱼
摘要

这篇“怎么使用python实现Android的服务器端”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“怎么使用Python实现

这篇“怎么使用python实现Android服务器端”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“怎么使用Python实现android的服务器端”文章吧。

Django(python)简单实现android的服务器端

1. 所需工具

PyCharm--python编辑工具,这里要写DjanGo,因此必须是专业版,社区版没有此功能。
MySql--登录信息需要存储到数据库里面。
Android Studio--用于手机端代码的编写。

2. 服务器端的实现

1. 新建一个Django项目,命名为:androidSevers
2.2. 为androidSevers添加一个APP模块:Login_sever

python manage.py startapp Login_sever

怎么使用python实现android的服务器端

完成后效果如图所示

怎么使用python实现android的服务器端

数据库连接及其setting.py配置
添加APP

怎么使用python实现android的服务器端

连接Mysql(大小写严格区分)

DATABASES = {    'default': {        'ENGINE': 'django.db.backends.mysql',        'NAME': 'androidsevers',        'USER': 'root',        'PASSWord': '123456',        'PORT': 3306,        'HOST': '',    }}

怎么使用python实现android的服务器端

通过设计model.py,映射到数据库。

from django.db import models# Create your models here.class Login(models.Model):    ID=models.AutoField(primary_key=True)    username=models.CharField(max_length=25,verbose_name='用户名')    password=models.CharField(max_length=25,verbose_name='密码')    adminname=models.CharField(max_length=25,verbose_name='用户姓名')

将model.py映射到数据库
在pycharm下面的终端下执行
创建迁移文件

python manage.py makemigrations

将迁移文件写入数据库

python manage.py migrate

执行完成后,在数据库里显示,如图所示。

怎么使用python实现android的服务器端

在数据库里写入一条记录,用于测试。如

怎么使用python实现android的服务器端

配置路由信息,urls.py

from django.contrib import adminfrom django.urls import pathfrom Login_sever import viewsurlpatterns = [    path('admin/', admin.site.urls),    path('login/',views.login_view)]

对数据的操作views.py

from django.core.exceptions import ObjectDoesNotExistfrom django.Http import HttpResponsefrom django.shortcuts import renderfrom Login_sever.models import Loginimport JSONdef login_view(request):    if request.method=='POST':        username=request.POST.get('username')        password=request.POST.get('password')        date_error={            'username': username,            'adminname': '',            'code':'错误,用户不存在',            'Status Code': 404        }        try:            user=Login.objects.get(username=username)            if user.password==password:                data={                    'username':user.username,                    'adminname':user.adminname,                    'code': '成功',                    'Status Code': 200                }                return HttpResponse(json.dumps(data), content_type='application/json')            else:                date_error = {                    'username': username,                    'adminname': '',                    'code': '密码错误',                    'Status Code': 404                }                return HttpResponse(json.dumps(date_error), content_type='application/json')        except ObjectDoesNotExist:            return HttpResponse(json.dumps(date_error),content_type='application/json')    else:        return HttpResponse('GET请求无效')

启动服务器
2.7.1. 查询服务器的IP地址

ipconfig

怎么使用python实现android的服务器端

2. 在setting里面配置IP地址
将这里修改为你的IP地址

怎么使用python实现android的服务器端

3. 启动服务器
在pycharm的终端中输入

python manage.py runserver 192.168.0.104:8000

怎么使用python实现android的服务器端

服务器端完成

3. 客户端的实现

1. 用android创建一个工程:androidclient
3.2. 新建一个LoginActivity
3.3. 新建一个类Login_cs
完成后如图所示

怎么使用python实现android的服务器端

在Login_cs里面写入

public class Login_cs {        private String username;    private String adminname;    private String code;    @SerializedName("Status Code")    private int _$StatusCode185; // FIXME check this code    public String getUsername() {        return username;    }    public void setUsername(String username) {        this.username = username;    }    public String getAdminname() {        return adminname;    }    public void setAdminname(String adminname) {        this.adminname = adminname;    }    public String getCode() {        return code;    }    public void setCode(String code) {        this.code = code;    }    public int get_$StatusCode185() {        return _$StatusCode185;    }    public void set_$StatusCode185(int _$StatusCode185) {        this._$StatusCode185 = _$StatusCode185;    }}

修改配置文件AndroidManifest.xml

<?xml version="1.0" encoding="utf-8"?><manifest xmlns:android="http://schemas.android.com/apk/res/android"    package="com.example.androidclient">    <uses-permission android:name="android.permission.INTERNET" />    <application        android:allowBackup="true"        android:icon="@mipmap/ic_launcher"        android:label="@string/app_name"        android:roundIcon="@mipmap/ic_launcher_round"        android:supportsRtl="true"        android:theme="@style/AppTheme">        <activity android:name=".LoginActivity">            <intent-filter>                <action android:name="android.intent.action.MaiN" />                <category android:name="android.intent.category.LAUNCHER" />            </intent-filter>        </activity>        <activity android:name=".MainActivity"></activity>    </application></manifest>

添加依赖

implementation 'com.squareup.okhttp3:okhttp:3.10.0'implementation 'com.google.code.gson:gson:2.6.2'

设置activity_login.xml

<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"    xmlns:app="http://schemas.android.com/apk/res-auto"    xmlns:tools="http://schemas.android.com/tools"    android:layout_width="match_parent"    android:layout_height="match_parent"    android:orientation="vertical"    tools:context=".LoginActivity">    <EditText        android:layout_marginTop="35dp"        android:layout_width="match_parent"        android:layout_height="wrap_content"        android:hint="请输入用户名"        android:gravity="center"        android:textSize="25dp"        android:id="@+id/tvUserName"/>    <EditText        android:layout_width="match_parent"        android:layout_height="wrap_content"        android:hint="请输入密码"        android:textSize="25dp"        android:gravity="center"        android:inputType="textPassword"        android:id="@+id/tvPassword"/>    <Button        android:id="@+id/btnLogin"        android:layout_marginTop="25dp"        android:layout_width="wrap_content"        android:layout_gravity="center"        android:background="#03A9F4"        android:text="登录"        android:textColor="#fff"        android:textSize="25dp"        android:paddingLeft="35dp"        android:paddingRight="35dp"        android:layout_height="wrap_content"/></LinearLayout>

设置LoginActivity.java

package com.example.androidclient;import android.content.Intent;import android.os.Bundle;import android.text.TextUtils;import android.util.Log;import android.view.View;import android.widget.Button;import android.widget.EditText;import android.widget.Toast;import androidx.appcompat.app.AppCompatActivity;import com.google.gson.Gson;import java.io.IOException;import okhttp3.Call;import okhttp3.Callback;import okhttp3.FORMBody;import okhttp3.OkHttpClient;import okhttp3.Request;import okhttp3.Response;public class LoginActivity extends AppCompatActivity implements View.OnClickListener {    private EditText tvUserName;    private EditText tvPassword;    private Button btnLogin;    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_login);        initView();    }    private void initView() {        tvUserName = (EditText) findViewById(R.id.tvUserName);        tvPassword = (EditText) findViewById(R.id.tvPassword);        btnLogin = (Button) findViewById(R.id.btnLogin);        btnLogin.setOnClickListener(this);    }    @Override    public void onClick(View v) {        switch (v.getId()) {            case R.id.btnLogin:                submit();                break;        }    }    private void submit() {        // validate        String tvUserNameString = tvUserName.getText().toString().trim();        if (TextUtils.isEmpty(tvUserNameString)) {            Toast.makeText(this, "请输入用户名", Toast.LENGTH_SHORT).show();            return;        }        String tvPasswordString = tvPassword.getText().toString().trim();        if (TextUtils.isEmpty(tvPasswordString)) {            Toast.makeText(this, "请输入密码", Toast.LENGTH_SHORT).show();            return;        }        // TODO validate success, do something        InternetSever(tvUserNameString,tvPasswordString);    }    private void InternetSever(String username,String password) {        OkHttpClient client = new OkHttpClient();        FormBody body = new FormBody.Builder()                .add("username", username)                .add("password", password)                .build();        final Request request = new Request.Builder()                .url("http://192.168.0.104:8000/login/")                .post(body)                .build();        client.newCall(request).enqueue(new Callback() {            @Override            public void onFailure(Call call, IOException e) {                Toast.makeText(LoginActivity.this, "网络异常,请稍后再试!", Toast.LENGTH_SHORT).show();            }            @Override            public void onResponse(Call call, Response response) throws IOException {                final String date=response.body().string();                runOnUiThread(new Runnable() {                    @Override                    public void run() {                        Gson gson=new Gson();                        Login_cs login_cs=gson.fromJson(date,Login_cs.class);                        if (login_cs.get_$StatusCode185()==200){                            Toast.makeText(LoginActivity.this, "欢迎登录,"+login_cs.getAdminname(), Toast.LENGTH_SHORT).show();                            startActivity(new Intent(LoginActivity.this,MainActivity.class));                        }else {                            Toast.makeText(LoginActivity.this, login_cs.getCode(), Toast.LENGTH_SHORT).show();                            tvPassword.setText("");                            tvUserName.setText("");                        }                    }                });            }        });    }}

客户端完成

4.测试

怎么使用python实现android的服务器端

怎么使用python实现android的服务器端

以上就是关于“怎么使用python实现android的服务器端”这篇文章的内容,相信大家都有了一定的了解,希望小编分享的内容对大家有帮助,若想了解更多相关的知识内容,请关注编程网服务器频道。

--结束END--

本文标题: 怎么使用python实现android的服务器端

本文链接: https://lsjlt.com/news/342826.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • 怎么使用python实现android的服务器端
    这篇“怎么使用python实现android的服务器端”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“怎么使用python实现...
    99+
    2023-07-02
  • 如何使用Django(python)实现android的服务器端
    目录Django(python)简单实现android的服务器端1. 所需工具2. 服务器端的实现3. 客户端的实现4.测试Django(python)简单实现android的服务器...
    99+
    2024-04-02
  • 使用python搭建服务器并实现Android端与之通信的方法
    前言 好久没有更技术文了,再不写怕是博客要废掉了,今天更一篇关于搭建服务端并与Android端通信的文章,为了节省代码量,服务端使用Python Flask,Android端使...
    99+
    2022-06-06
    用python 服务器 方法 通信 Python Android
  • python怎么实现Thrift服务端
    这篇文章将为大家详细讲解有关python怎么实现Thrift服务端,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。python可以做什么Python是一种编程语言,内置了许多有效的工具,Python几乎无所...
    99+
    2023-06-14
  • python中怎么使用TCP实现对话客户端和服务器
    TCP 客户端一个使用TCP协议实现可连续对话的客户端示例代码:import socket # 客户端配置 HOST = 'localhost' PORT = 12345 # 创建TCP套接字并连接服务器 client_so...
    99+
    2023-05-17
    服务器 Python TCP
  • python客户端与服务器端通信怎么实现
    Python客户端与服务器端通信可以通过套接字(socket)实现。1. 服务器端首先需要创建一个套接字,并绑定到指定的IP地址和端...
    99+
    2023-09-08
    python 服务器
  • python使用UDP实现客户端和服务器对话
    目录UDP 客户端UDP 服务端注意事项UDP 客户端 一个使用UDP协议的客户端示例代码,用于实现连续对话。请注意,UDP是无连接协议,因此在实现连续对话时需要特别小心。 以下是...
    99+
    2023-03-23
    python UDP对话 python UDP客户端服务器
  • python日记(使用TCP实现的对话客户端和服务器)
    目录TCP 客户端TCP 服务端TCP 客户端 一个使用TCP协议实现可连续对话的客户端示例代码: import socket # 客户端配置 HOST = 'localhost'...
    99+
    2023-03-23
    python TCP对话 python TCP客户端服务器
  • ASP中的服务器端怎么使用
    在ASP中,服务器端通常指的是在ASP页面中使用的服务器端脚本语言,比如VBScript或JScript。服务器端脚本在ASP页面中...
    99+
    2024-04-03
    ASP
  • 怎么使用linux socket实现服务器和客户端对话
    本文小编为大家详细介绍“怎么使用linux socket实现服务器和客户端对话”,内容详细,步骤清晰,细节处理妥当,希望这篇“怎么使用linux socket实现服务器和客户端...
    99+
    2023-05-25
    linux socket 服务器
  • Python中怎么实现服务端与客户端连接
    本篇内容主要讲解“Python中怎么实现服务端与客户端连接”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Python中怎么实现服务端与客户端连接”吧!服务端我们使用 socket 模块的&nbs...
    99+
    2023-06-08
  • python如何使用UDP实现客户端和服务器对话
    这篇文章主要介绍“python如何使用UDP实现客户端和服务器对话”,在日常操作中,相信很多人在python如何使用UDP实现客户端和服务器对话问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”python如何使...
    99+
    2023-07-05
  • Python基于socket怎么实现TCP客户端和服务端
    这篇文章主要讲解了“Python基于socket怎么实现TCP客户端和服务端”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Python基于socket怎么实现TCP客户端和服务端”吧!一、基...
    99+
    2023-06-30
  • android ssh客户端怎么实现
    要实现 Android 上的 SSH 客户端,可以使用以下步骤: 添加 SSH 客户端库:首先需要在 Android 项目中添加...
    99+
    2023-10-22
    android ssh
  • python实现Thrift服务端的方法
    目录环境准备编写.thrift文件生成python对应的thrift代码编写服务端编写客户端用于测试测试服务端近期在项目中存在跨编程语言协作的需求,使用到了Thrift。本文将记录用...
    99+
    2024-04-02
  • Python socket怎么实现服务端和客户端数据传输
    今天小编给大家分享一下Python socket怎么实现服务端和客户端数据传输的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了...
    99+
    2023-06-30
  • python服务器与android客户端socket通信实例
    本文实例讲述了python服务器与android客户端socket通信的方法。分享给大家供大家参考。具体实现方法如下: 首先,服务器端使用python完成,下面为python代...
    99+
    2022-06-06
    socket通信 Python socket Android
  • vue下怎么使用mqtt服务端实现即时通讯
    这篇文章主要介绍“vue下怎么使用mqtt服务端实现即时通讯”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“vue下怎么使用mqtt服务端实现即时通讯”文章能帮助大家解决问题。MQTT协议MQTT(M...
    99+
    2023-07-04
  • 云服务器怎么联网使用手机端的服务器
    使用手机端的云服务器,用户可以在不同的设备和位置上访问云服务器中的资源,例如在家中使用电脑、在办公室中使用手机、在出差途中使用平板电脑等。通过云服务器的连接,用户可以在任何时间、任何地点访问他们需要的资源。 通过云服务器的连接,用户可以使...
    99+
    2023-10-27
    服务器 手机
  • web服务器端软件怎么使用
    要使用Web服务器端软件,需要按照以下步骤:1. 选择适合你的操作系统的Web服务器软件,比如Apache、Nginx等。2. 安装...
    99+
    2023-06-03
    web服务器端软件 web服务器 服务器
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作