首页 > 编程语言 >微信小程序社区项目----后端

微信小程序社区项目----后端

时间:2024-06-12 21:11:17浏览次数:23  
标签:name 后端 models 微信 self ---- import class verbose

【创建虚拟环境】

 1 # 1.执行命令mkvirtualenv -p python3 smart_api
 2 
 3 # 2.在虚拟环境中装django
 4     pip install django==4.2.13
 5 
 6 # 3. 创建后端项目
 7     1 使用命令
 8             django-admin startproject 项目名
 9         2 pycharm创建--指定刚刚创建的虚拟环境
10             -找到刚刚创建的虚拟环境,加入进来,创建项目即可
11             -路径找到
12                 -1 重启机器
13                 -2 把虚拟环境目录浅一些
14             -3 使用命令创建,使用pycharm打开--》还得指定解释器

 

 变成smart_api1

 

 

 

【欢迎页面】  

  # 1 后端需要配合接口 welcome
    -welcome表:图片,id,跳转地址。。。
    -接口:welcome接口

 

 1 模型表:models.py
 2 
 3 from django.db import models
 4 
 5 
 6 # Create your models here.
 7 class Welcome(models.Model):
 8     img = models.ImageField(upload_to='welcome', default='slash.png')
 9     order = models.IntegerField()
10     link = models.CharField(max_length=32)
11     create_time = models.DateTimeField(auto_now=True)
12     is_delete = models.BooleanField(default=False)
13 
14 
15 --------------------------------------------------------------------------------------
16 views.py
17 
18 from rest_framework.mixins import ListModelMixin
19 from rest_framework.viewsets import GenericViewSet
20 from core.models import Welcome
21 from core.serializers import WelcomeSerialzier
22 
23 
24 # Create your views here.
25 class WelcomeView(GenericViewSet, ListModelMixin):
26     queryset = Welcome.objects.all().filter(is_delete=False).order_by('-order')
27     serializer_class = WelcomeSerialzier
28 
29 -------------------------------------------------------------------------------------
30 serializer.py
31 
32 from rest_framework import serializers
33 
34 from core.models import Welcome
35 
36 
37 class WelcomeSerialzier(serializers.ModelSerializer):
38     class Meta:
39         model = Welcome
40         fields = ['img', 'link']
41 
42 ---------------------------------------------------------------------------------------
43 urls.py
44 
45 from .views import WelcomeView
46 from rest_framework.routers import SimpleRouter
47 
48 router = SimpleRouter()
49 router.register('welcome', WelcomeView,'welcome')
50 
51 urlpatterns = [
52 
53 ]
54 
55 urlpatterns += router.urls
56 
57 --------------------------------------------------------------------------------------
58 settings.py
59 
60 MEDIA_URL = '/media/'
61 MEDIA_ROOT = os.path.join(BASE_DIR, 'media')

 

 

 

首页轮播图和公告接口

# 1 后端创建轮播图表和公告表
# 2 admin中录入数据
-simpleui

 1 models.py
 2 
 3 # 轮播图表
 4 class Banner(models.Model):
 5     img = models.ImageField(upload_to='banner', default='banner1.png', verbose_name='图片')
 6     order = models.IntegerField(verbose_name='顺序')
 7     create_time = models.DateTimeField(auto_now=True, verbose_name='创建时间')
 8     is_delete = models.BooleanField(default=False, verbose_name='是否删除')
 9 
10     class Meta:
11         verbose_name_plural = '轮播图'
12 
13 
14 # 公告表
15 class Notice(models.Model):
16     title = models.CharField(max_length=64, verbose_name='公共标题')
17     content = models.TextField(verbose_name='内容')
18     img = models.ImageField(upload_to='notice', default='notice.png', verbose_name='公告图片')
19     create_time = models.DateTimeField(auto_now=True, verbose_name='创建时间')
20 
21     class Meta:
22         verbose_name_plural = '公告表'
23 
24 
25 --------------------------------------------------------------------------------------
26 views.py
27 
28 
29 # 轮播图接口
30 class BannerView(GenericViewSet, ListModelMixin):
31     queryset = Banner.objects.all().filter(is_delete=False).order_by('order')[:2]
32     serializer_class = BannerSerializer
33 
34     def list(self, request, *args, **kwargs):
35         res = super().list(request, *args, **kwargs)
36         notice = Notice.objects.all().order_by('create_time').first()
37         serializer = NoticeSerializer(instance=notice)
38         return Response({'code': 100, 'msg': '成功', 'banner': res.data, 'notice': serializer.data})
39 
40 --------------------------------------------------------------------------------------
41 serializer.py
42 
43 # 轮播图表序列化类
44 class BannerSerializer(serializers.ModelSerializer):
45     class Meta:
46         model = Banner
47         fields = '__all__'
48 
49 
50 # 社区通知序列化类
51 class NoticeSerializer(serializers.ModelSerializer):
52     class Meta:
53         model = Notice
54         fields = ['id', 'title','content']
55 
56 -----------------------------------------------------------------------------------
57 urls.py
58 
59 router.register('banner', BannerView,'banner')

 

pip install django-simpleui

 

 

 

信息采集拍照上传

# 1 小程序端拍照---》上传到咱们后台--》后台保存一份(media)--》把图片---》传到百度ai人脸识别库中存着

# 2 学习
-百度ai人脸库上传
-百度ai人脸库删除
-百度ai人脸库根据人脸匹配

 

pip3 install baidu-aip
pip3 install pypinyin
pip install chardet

需要安装的模块

 

 1 # 人脸注册
 2 
 3 from aip import AipFace
 4 import base64
 5 from pypinyin import lazy_pinyin, Style
 6 
 7 
 8 class BaiDuAI:
 9     def __init__(self, APP_ID='76543972', API_KEY='LAJoFtfUTgOfF90UqAtbObq1',
10                  SECRET_KEY='2QXO7MOA4uWdAOhjl1Vz4FMeC7xZtL4K'):
11         """ 你的 APPID AK SK """
12         self.APP_ID = APP_ID
13         self.API_KEY = API_KEY
14         self.SECRET_KEY = SECRET_KEY
15         self.client = AipFace(self.APP_ID, self.API_KEY, self.SECRET_KEY)
16 
17     def name_to_pinyin(self, text):
18         style = Style.TONE3
19         name_list = lazy_pinyin(text, style=style)
20         return ''.join(name_list)
21 
22     def add_user(self):
23         image = base64.b64encode(
24             open(r'C:\Users\靳小洁\PycharmProjects\smart_api1\scripts\彭于晏.png', 'rb').read()).decode('utf-8')
25         imageType = "BASE64"
26         groupId = "100"
27         userId = self.name_to_pinyin('彭于晏')
28         """ 调用人脸注册 """
29         res = self.client.addUser(image, imageType, groupId, userId)
30         print(res)
31 
32         """ 如果有可选参数 """
33         '''
34         {'error_code': 0, 'error_msg': 'SUCCESS', 'log_id': 937906163, 'timestamp': 1716948937, 'cached': 0, 'result': {'face_token': '7598884f9d9a349218941e8e6f52c884', 'location': {'left': 493.4, 'top': 329.74, 'width': 348, 'height': 321, 'rotation': -8}}}
35         '''
36 
37     def search(self):
38         image = base64.b64encode(open('彭于晏.png', 'rb').read()).decode('utf-8')
39         imageType = "BASE64"
40         groupIdList = "100,2"
41         """ 调用人脸搜索 """
42         res = self.client.search(image, imageType, groupIdList);
43         """ 如果有可选参数 """
44         print(res)
45         '''
46         {'error_code': 0, 'error_msg': 'SUCCESS', 'log_id': 1190062038, 'timestamp': 1716949190, 'cached': 0, 'result': {'face_token': 'bdbc6214eb18ccee1bf72d1f72f0c979', 'user_list': [{'group_id': '100', 'user_id': 'peng2yu2yan4', 'user_info': '', 'score': 14.822490692139}]}}
47         '''
48 
49     def delete(self):
50         userId = "peng2yu2yan4"
51         groupId = "100"
52         faceToken = "374e14ed028e8b3fabe2c18d1656b381"
53         """ 调用人脸删除 """
54         res = self.client.faceDelete(userId, groupId, faceToken);
55         print(res)
56         '''
57         {'error_code': 0, 'error_msg': 'SUCCESS', 'log_id': 1355696697, 'timestamp': 1716949355, 'cached': 0, 'result': None}
58         '''
59 
60 
61 if __name__ == '__main__':
62     ai = BaiDuAI()
63     # ai.add_user()
64     # ai.search()
65     ai.delete()

 

 

后端接口

# 1 采集上传接口---》存本地--》存百度ai
# 2 查询今天采集数据--》1 当前用户(没实现) 2 当天采集的数据 3 总条数Collection.objects.all().filter(create_time__gte=datetime.now().date())
# 3 删除采集接口-->id号删除

 

标签:name,后端,models,微信,self,----,import,class,verbose
From: https://www.cnblogs.com/liuliu1/p/18244700

相关文章

  • 微信小程序社区项目----前端
    【项目介绍】#智慧社区-小程序-欢迎页面-首页-轮播图-公告-信息采集,社区活动,人脸检测,语音识别,心率检测,积分商城-信息采集页面-采集人数-采集详情页面-采集统计页面-人脸检测页面-语音识别页面-积分商城......
  • gophish钓鱼
    目录环境介绍安装1、设置发件人的邮箱2、编辑钓鱼邮件模板3、制作钓鱼页面4、设置目标用户5、创建钓鱼事件6、查看结果参考1参考2参考3Gophish官网并下载适用于Linux的版本环境介绍Ubuntu22图形化/16G/4U/120G172.16.186.137/24安装rambo@test1:~$mkdirgophish&&cd......
  • golang sync.Map 与使用普通的 map 的区别
     使用sync.Map与普通的Gomap主要有以下几点区别:1.并发安全性普通map:在没有外部同步的情况下,不是并发安全的。在多goroutine访问时,如果没有适当的锁或其他同步机制保护,可能会导致数据竞争和未定义行为。sync.Map:是并发安全的。它内部实现了必要的同步机制,允许多......
  • 第十四篇——互信息:相关不是因果,那相关是什么?
    目录一、背景介绍二、思路&方案三、过程1.思维导图2.文章中经典的句子理解3.学习之后对于投资市场的理解4.通过这篇文章结合我知道的东西我能想到什么?四、总结五、升华![在这里插入图片描述](https://img-blog.csdnimg.cn/direct/499cd9af2ea14cbf8d12813f6f7fa150.png)......
  • GitHub标星破千!这份Python并行编程手册,可以封神了!
    现在这个时代是并行编程与多核的时代,硬件成本越来越低,如何充分利用硬件所提供的各种资源是每一个软件开发者需要深入思考的问题。若想充分利用所有的计算资源来构建高效的软件系统,并行编程技术是不可或缺的一项技能。今天给小伙伴们分享的这份手册一共分为6章,从原理到实践系统......
  • eNSP学习——RIP的路由引入
    目录主要命令原理概述实验目的实验内容 实验拓扑实验编址实验步骤1、基本配置2、搭建公司B的RIP网络3、优化公司B的RIP网络4、连接公司A与公司B的网络需要eNSP各种配置命令的点击链接自取:华为eNSP各种设备配置命令大全PDF版_ensp配置命令大全资源-CSDN文库主要......
  • Spring中如何开启事务
    事务管理在系统开发中是不可缺少的一部分,Spring提供了很好事务管理机制,主要分为编程式事务和声明式事务两种。声明事务声明式事务是通过配置的方式来管理事务的行为,声明式事务的好处是可以将事务管理与业务逻辑相分离,提高了代码的可读性和维护性。声明事务的代码很简单,我们......
  • 为什么机器这么难理解人类语言?
    人类自然语言的多样性、灵活性、歧义性、上下文依赖性、语言的变化以及世界知识和常识的应用等因素都使得让机器难以理解人的自然语言:多样性和灵活性:包括语法、词汇、语义、上下文等方面。同一个词汇在不同语境中可能有不同的含义,例如“他被杀死了”的“死”和“笑死我了”的......
  • 线程池 (重点)概述&7大参数理解
    目录1、线程池思想概述2、什么是线程池?3、不使用线程池的问题4、线程池的工作原理5、线程池实现的API、参数说明 5.1、谁代表线程池? 5.2、如何得到线程池对象 5.3、ThreadPoolExecutor构造器的参数说明 6、线程池常见面试题 6.1、临时线程什么时候创建啊? 6.2......
  • 为什么在NLP中迟迟没有出现类似CV预训练的范式
    Q:2018年前,迁移学习在NLP中的运用情况如何?我们知道,直到2018年,ULM-FiT、GPT和BERT模型的出现才开启了NLP预训练模型的时代,才真正实现了CV领域那样的迁移学习方法在NLP领域的应用。那么,是不是说2018年前NLP领域就没有迁移学习呢?答案是,这个说法是非常不准确的!就如我们在6.4.3里预......