如何将鸿蒙App与Django后台作简单的交互。
鸿蒙App
1.新建项目
2.在config.json进行如下配置
"deviceConfig": {
"default": {
"process": "com.huawei.hiworld.example",
"supportBackup": false,
"network": {
"cleartextTraffic": true
}
reqPermissions": [
{
"name": "ohos.permission.GET_NETWORK_INFO"
},
{
"name": "ohos.permission.SET_NETWORK_INFO"
},
{
"name": "ohos.permission.INTERNET"
}
],
3.Js有关代码:关于qs.stringify
qs.stringify把一个参数对象格式化为一个字符串,将对象 序列化成 URL 的形式(a=b&c=d),以&进行拼接
JSON.parse() 方法用来解析JSON字符串,将JSON字符串转换为JSON对象(把key=value连接字符串转成对象,如:name=hehe&ange=10==>{name:'hehe', ange:10}
如果不下载node.js则显示无法识别'import',但官网需要VPN才能允许访问下载
这是已经下好的安装包
链接:https://pan.baidu.com/s/1kTvnznZDSWvg13j_ZuSFLw?pwd=make
提取码:make
https://cloud.tencent.com/developer/article/1572591大家可以跟着这个教程去使用大家可以跟着这个教程去使用
下载和配置好后分别在Terminal使用npm install qs、npm install querystring
之后使用就可以使用 import qs from 'querystring
5.编写html界面
至此,前端鸿蒙App完成
Django
1.新建Django项目
2.在settings的DATABASES中设置所链接的数据库。
'ENGINE': 'django.db.backends.mysql', # 默认 'NAME': '',#数据库名称 'USER': 'root',#数据库用户 'PASSWORD': '',#数据库密码 'HOST': '127.0.0.1',#网址 'PORT': '3306',#端口号
3. 在_init_py文件中输入,在此期间安装相应的包避免报错
import pymysql pymysql.install_as_MySQLdb()
4.在终端中输入语句新建App
python manage.py startapp xxx
5.填写上 ALLOWED_HOSTS =[‘*’]可以使所有的网址都能访问Django项目了
6.添加App在settings里面
7.在App下新建Urls文件
8.在models中创建模型表,以后续方面迁移
from django.db import models # Create your models here. class Employee(models.Model): FIRST_NAME = models.CharField(max_length=32) LAST_NAME = models.CharField(max_length=32) AGE = models.IntegerField() sex = models.IntegerField() INCOME = models.IntegerField()
9.在右侧的database中的加号进行添加,name随便写、user写root、password写数据库密码
Database写所连数据库的名称
但注意只有App_表名的表才能进行交互
这里很奇怪,在模型中没有设置id,但在迁移后却出现并成为主键。不知道原因,希望有大佬来解答一下
10.在App的views中编写发送数据的方法
class Appreap1(APIView): def post(self, request): result = Employee.objects.filter(FIRST_NAME='a') arr = [] for i in result: content = {'姓': i.FIRST_NAME, "名": i.LAST_NAME, '年龄': i.AGE, '性别': i.sex, '收入': i.INCOME} arr.append(content) print(arr) FIRST_NAME = request.data.get('FIRST_NAME') print(FIRST_NAME) return HttpResponse(arr)
11.分别设置一级路由和二级路由
from django.contrib import admin from django.urls import path, include from student import urls as student_urls urlpatterns = [ path('admin/', admin.site.urls), path('student/', include(student_urls, namespace='student')), ]
from django.urls import path from student.views import Appreap1 app_name = 'student' urlpatterns = [ path('Appreap1/', Appreap1.as_view()) ]
12.先启动Django在启动鸿蒙App
结果展示