微信小程序从Django框架Mysql中取id和name到前端,picker显示name选择,传id到后端表中
时间: 2024-11-11 19:21:52 浏览: 4
微信小程序通过 Django 框架连接 MySQL 数据库时,通常需要先在后端进行数据查询并获取 id 和 name 对应的数据。这里是一个基本步骤:
1. **后端处理**:
- 在 Django 的视图函数中,使用 ORM(如 Django 的 `django.db.models` 或 `mysqlclient` 库)执行 SQL 查询,例如:
```python
from django.shortcuts import render
from .models import YourModel # 假设有一个名为 YourModel 的模型映射 MySQL 表
def get_data(request):
data = YourModel.objects.values_list('id', 'name') # 获取 id 和 name 列
return JsonResponse({'data': list(data)}) # 返回给前端 JSON 格式的数据
```
这里假设 `YourModel` 有 `id` 和 `name` 字段,并使用 `values_list` 函数只获取这两列。
2. **前端展示**:
- 在微信小程序的页面组件中,你可以使用 `wx.request` 发送异步请求获取数据。接收到数据后,可以将 `name` 显示在 picker 组件中供用户选择:
```html
<view>
<picker bindchange="selectItem" value="{{ selectedId }}">{{ selectedName }}</picker>
</view>
<script>
Page({
data: {
selectedId: '',
selectedName: '',
dataList: []
},
async onLoad() {
await this.getData();
},
async getData() {
wx.request({
url: '/api/get_data', // 替换为你实际的后端接口地址
success(res) {
this.setData({
dataList: res.data.data.map(item => ({
id: item[0], // 存储 id
name: item[1] // 存储 name
})),
});
}
});
},
selectItem(e) {
this.setData({
selectedId: e.detail.value,
selectedName: e.detail.value ? this.data.data.find(d => d.id === e.detail.value).name : ''
});
// 当用户选择项,将 id 发送给后端
this.sendToBackend(e.detail.value);
},
sendToBackend(id) {
// 使用 wx.request 将 id 发送到后端
}
});
</script>
```
在 `selectItem` 事件处理器中,更新用户选择的 name,然后调用 `sendToBackend` 函数发送 id。
阅读全文