不多说,直接贴代码
ORM操作:
from django.db import models
class Boy(models.Model):
nickname = models.CharField(max_length=32)
username = models.CharField(max_length=32)
password = models.CharField(max_length=64)
class Girl(models.Model):
nickname = models.CharField(max_length=32)
username = models.CharField(max_length=32)
password = models.CharField(max_length=64)
class B2G(models.Model):
b = models.ForeignKey('Boy',on_delete=models.CASCADE)
g = models.ForeignKey('Girl',on_delete=models.CASCADE)
配置app:
INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'app01.apps.App01Config',
]
Views操作:
account:from django.shortcuts import render,HttpResponse,redirect
from app01 import models
def login(request):
if request.method == 'GET':
return render(request,'login.html')
else:
user = request.POST.get('username')
pwd = request.POST.get('password')
gender = request.POST.get('gender')
rmb = request.POST.get('rmb')
print(user,pwd,gender)
#性别判断
if gender == '1':
obj = models.Boy.objects.filter(username=user,password=pwd).first()
else:
obj = models.Girl.objects.filter(username=user, password=pwd).first()
if not obj:
#未登录
return render(request,'login.html',{'msg':'出现错误'})
else:
# request.session['user_id'] = obj.id
# request.session['gender'] = gender
# request.session['username'] = user
request.session['user_info'] = {'user_id':obj.id,'gender':gender,'username':user,'nickname':obj.nickname}
return redirect('/index.html')
def logout(request):
if request.session.get('user_info'):
request.session.clear()
# request.session.delete(request.session.session_key)
return redirect('/login.html')
love:
from django.shortcuts import render,HttpResponse,redirect
from app01 import models
def index(request):
if not request.session.get('user_info'):
return redirect('/login.html')
else:
#男:查看女生列表
#女:男生
gender = request.session.get('user_info').get('gender')
# current_nickname = request.session.get('user_ifo').get('nickname')
if gender == '1':
user_list = models.Girl.objects.all()
else:
user_list = models.Boy.objects.all()
return render(request,'index.html',{'user_list':user_list})
def others(request):
"""
获取与当前用户有关系的异性
:param request:
:return:
"""
current_user_id = request.session.get('user_info').get('user_id')
gender = request.session.get('user_info').get('gender')
if gender == '1':
user_list = models.B2G.objects.filter(b_id=current_user_id).values('g__nickname')
else:
user_list = models.B2G.objects.filter(g_id=current_user_id).values('b__nickname')
return render(request,'others.html',{'user_list':user_list})
路由URL:
from django.contrib import admin
from django.urls import path
from django.conf.urls import url
from app01.views import account,love
urlpatterns = [
path('admin/', admin.site.urls),
url(r'^login.html$',account.login),
url(r'^index.html$', love.index),
url(r'^logout.html$', account.logout),
url(r'^others.html$', love.others),
]
女生表:
男生表:
男女关系表: