django社交类程序笔记(14)社交模块模型创建
我们创建一个社交模块
social模块,包含用户左滑右滑,表示喜欢、不喜欢或者超级喜欢的模块
新建app,social
python manage.py startapp social
在social/models.py中加入字段代码:
from django.db import models# Create your models here.class Swiped(models.Model):"""滑动"""STATUS = (('superlike', '超级喜欢'),('like', '喜欢'),('dislike', '不喜欢'))uid = models.IntegerField(verbose_name='滑动者的 UID')sid = models.IntegerField(verbose_name='被滑动者的 UID')status = models.CharField(max_length=8, choices=STATUS)time = models.DateTimeField(auto_now_add=True)class Friend(models.Model):"""好友"""uid1 = models.IntegerField()uid2 = models.IntegerField()"""如果A是B的好友,uid1或者uid2都可以记录A和B,因为A和B关系是相等的"""
然后把views.py名字改为api.py,本项目都是这样,写入预留函数:
from django.shortcuts import renderfrom lib.http import render_jsondef get_users(request):"""获取推荐列表"""return render_json()def like(request):"""喜欢"""return render_json()def superlike(request):"""超级喜欢"""return render_json()def dislike(request):"""不喜欢"""return render_json()def rewind(request):"""反悔"""return render_json()
主项目的urls.py中增加:
from social import api as social_api
urlpatterns = [...path('api/social/users', social_api.get_users),path('api/social/like', social_api.like),path('api/social/superlike', social_api.superlike),path('api/social/dislike', social_api.dislike),path('api/social/rewind', social_api.rewind),
]
添加预备数据
首先我们需要在数据库中添加一些机器人,
先回忆一下随机模块使用方法:
random.randrange(1, 10)
random.randint(1,10)
random.random
random.choice([1,2,3,4]) # 随机选一个
random.sample("123213456", 3) #从字符串里取3个
random.shuffle() #洗牌,打乱
然后利用随机方法,在主项目中创建文件夹scripts,然后创建init.py文件,写入下面代码:
#!/usr/bin/env pythonimport os
import sys
import random
import django# 设置环境
BASE_DIR = os.path.dirname(os.path.dirname(os.path.dirname(os.path.abspath(__file__))))
sys.path.insert(0, BASE_DIR)
os.environ.setdefault('DJANGO_SETTINGS_MODULE', "spiter.settings")
django.setup() # 这个设置下,才能使用Django内部的文件from user.models import User# last_names = (
# '赵钱孙李周吴郑王冯陈褚卫蒋沈韩杨'
# '朱秦尤许何吕施张孔曹严华金魏陶姜'
# '戚谢邹喻柏水窦章云苏潘葛奚范彭郎'
# '鲁韦昌马苗凤花方俞任袁柳酆鲍史唐'
# '费廉岑薛雷贺倪汤滕殷罗毕郝邬安常'
# '乐于时傅皮卞齐康伍余元卜顾孟平黄'
# )double_names = {'复姓': ['独孤', '司马', '西门', '南宫', '东方',],'单姓': ['赵', '钱', '孙', '李', '周', '吴', '郑', '王','冯', '陈', '褚', '卫', '蒋', '沈', '韩', '杨',],}first_names = {'男': ['致远', '俊驰', '雨泽', '烨磊', '晟睿','天佑', '文昊', '修洁', '黎昕', '远航','旭尧', '鸿涛', '伟祺', '荣轩', '越泽','浩宇', '瑾瑜', '皓轩', '浦泽', '绍辉','绍祺', '升荣', '圣杰', '晟睿', '思聪'],'女': ['沛玲', '欣妍', '佳琦', '雅芙', '雨婷','韵寒', '莉姿', '雨婷', '宁馨', '妙菱','心琪', '雯媛', '诗婧', '露洁', '静琪','雅琳', '灵韵', '清菡', '溶月', '素菲','雨嘉', '雅静', '梦洁', '梦璐', '惠茜']
}def random_name():# last_name = random.choice(last_names)last_name_type = random.choice(list(double_names.keys()))last_name = random.choice(double_names[last_name_type])sex = random.choice(list(first_names.keys()))first_name = random.choice(first_names[sex])return ''.join([last_name, first_name]), sexdef create_robots(n):# 创建初始用户for i in range(n):name, sex = random_name()try:User.objects.create(phonenum='%s' % random.randrange(21000000000, 21900000000),nickname=name,sex=sex,birth_year=random.randint(1980, 2000),birth_month=random.randint(1, 12),birth_day=random.randint(1, 28),location=random.choice(['北京', '上海', '深圳', '成都', '西安', '沈阳', '武汉']),)print('created: %s %s' % (name, sex))except django.db.utils.IntegrityError:passif __name__ == '__main__':create_robots(10)
本来是百家姓,我给加入了复姓。
django社交类程序笔记(14)社交模块模型创建相关推荐
- django社交类程序笔记(7)短信平台对接
个人模块开发 功能概览: 用户数据模型设计 手机注册 短信验证码登录 获取个人资料 修改个人资料 头像上传 在user文件夹下创建api.py,先写一些占位函数: def get_verify_cod ...
- QT学习笔记14(Qt模型视图结构)
一.基础知识 1.MVC设计模式:是一种与用户界面相关的设计模式,通过此模式,可以有效的分离数据和用户界面. MVC包括三个要素: 表示数据的模型(Model):应用程序的对象 表示用户界面的视图(V ...
- Python flask实战订餐系统微信小程序-19后台管理员模块数据库创建
B站配套视频教程观看 第一个要实现的功能是登录退出功能,任何一个大的系统都是有小模块组成的,我们可以通过思维导图整理出模块的功能列表,我们根据思维导图慢慢实现,就可以做出一个由简单到复杂的系统. 后台 ...
- 1.odoo13之跟着官网做项目/实例(创建模块、创建模型类、配置角色安全权限文件)
目录 1.创建模块 2.运行程序,安装上模块 3.创建模型类 4.配置角色安全权限文件 1.创建模块 在主目录下,新建custom的文件夹 进入到pycharm中的命令行,创建estate命令 pyt ...
- Django开发社交类网站必备的10个第三方应用
本文首发于我的博客 追梦人物的博客,欢迎关注. Django 的好处就是大而全,不仅内置了 ORM.表单.模板引擎.用户系统等,而且第三方应用的生态也是十分完善,开发中大部分常见的功能都能找到对应的第 ...
- Django开发社交类网站必备的11个第三方应用
Django开发社交类网站必备的11个第三方应用 转载自 逐梦人物 Django 的好处就是大而全,不仅内置了 ORM.表单.模板引擎.用户系统等,而且第三方应用的生态也是十分完善,开发中大部分常见的 ...
- node.js学习笔记14—微型社交网站
node.js学习笔记14-微型社交网站 1.功能分析 微博是以用户为中心,因此需要有注册和登录功能. 微博最核心的功能是信息的发表,这个功能包括许多方面,包括:数据库访问,前端显示等. 一个完整的微 ...
- 小程序社交类目需要上传《非经营性互联网信息服务备案核准》,什么是《非经营性互联网信息服务备案核准》?
一.什么是<非经营性互联网信息服务备案核准>? <非经营性互联网信息服务备案核准>即为icp备案 政策法规依据 <互联网信息服务管理办法> 第三条 互联网信息服务分 ...
- 微信小程序 添加社交类目
微信小程序添加社交类目,需要上传<非经营性互联网信息服务备案核准>即icp备案文件 可以通过https://beian.miit.gov.cn/#/search/info查询
最新文章
- Unity学习笔记3 简易2D横版RPG游戏制作(三)
- 指定查找区间,查找学生姓名并显示是否修改成功
- 不相交集ADT(联机算法 + 脱机算法)
- Lodop打印设计界面生成代码带”...(省略)”
- Python基础学习篇-2-数值运算和字符串
- shell下后台挂起
- 可临摹学习的精致的音乐播放器界面设计ui模板
- 基于Vue和Node.js的电商后台管理系统
- VMware ESXi 7.0 U2 SLIC Unlocker USB 网卡驱动集成镜像 202109 更新
- 【转载】透视“专利恶霸”系列之一 双重标准 吃相难看
- zblog微信小程序模板-青春主题小程序免费开源模板
- LaunchFaster 启动器工具 - 类似 Rolan 和音速启动的图标式快捷启动软件
- 计算机二级办公软件高级应用操作题,谁有计算机二级办公软件高级应用技术word操作题目啊?...
- Monte Carlo tree search 学习
- Simple polygon
- java 国家法定节假日和双休日判断工具类
- 什么是阻抗(Electrical impedance)
- 电机驱动芯片——TLE9183QK
- 如何将多个bin文件合成一个bin文件?(一)
- python批量修改文件名(将中文改为英文首字母)和xml文件
热门文章
- 学习电子电路的好资料(视频与仿真软件)
- YOLOv5、YOLOv7改进之实验结果新增mAP75的值(一):新增打印mAP75的值,便于YOLOv5系列模型对比实验获取更多精度数据,丰富实验数据
- css3代码整理—弹性盒子篇
- 工业制造业供应链系统解决方案丨助力企业打通数据流、控制流、业务流
- iOS 中使用 Mobile Installation 安装 IPA-获取列表(使用iTunes/AppStore一样的安装API)
- javacv 人脸追踪_javacv配置+javacv人脸识别代码.doc
- mysql导出数据库
- 影之刃服务器维护,《影之刃3》2月1日停服维护公告
- 阿里巴巴大神发布的Java零基础笔记,实战教程多到手软,跪了
- 案例:python实现单位转换