django社交類程式筆記(14)社交模組模型建立

2021-10-04 15:12:57 字數 4177 閱讀 8852

在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,本專案都是這樣,寫入預留函式:

:"""獲取推薦列表"""

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 python

import 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 =

defrandom_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]

) *** = random.choice(

list

(first_names.keys())

) first_name = random.choice(first_names[***]

)return

''.join(

[last_name, first_name]

), ***

defcreate_robots

(n):

# 建立初始使用者

for i in

range

(n):

name, *** = random_name(

)try

: user.objects.create(

phonenum=

'%s'

% random.randrange(

21000000000

,21900000000),

nickname=name,

***=***,

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, ***)

)except django.db.utils.integrityerror:

pass

if __name__ ==

'__main__'

: create_robots(

10)

本來是百家姓,我給加入了複姓。

django社交類程式筆記(1)專案概覽

swiper social 類似於 探探 的社交類程式,採用親啊後端分離結構,主要包含下列模組 個人模組 社交模組 vip模組 非同步任務模組 redis快取模組 日誌模組,異常處理模組 簡訊模組,郵件模組 運維,部署 前端模組 其他了解真實專案的開發流程 掌握如何使用git完成協作開發和 管理 掌...

django 學習筆記 14 快取機制

快取設定在settings 檔案 的 cache backend 中。這裡是乙個cache backend 所 有可用值的解釋。memcached 是迄今為止可 用於django 的最快,最有效的快取型別,memcached 是完全基於記憶體的快取框架,在安裝了memcached 本身之後,你將需要...

Django學習筆記(2)建立應用程式

learning log source ll env bin activate2.1 定義模型 每當需要修改 學習筆記 管理的資料時,採取三個步驟 修改models.py,對learning logs呼叫makemigrations修改資料庫,讓django遷移專案migrate step1.修改m...