练习随笔 - 电影
Models:::::

from django.db import models

class Start(models.Model):
name = models.CharField(max_length=20,verbose_name='姓名')
age = models.IntegerField(verbose_name='年龄')
gender_choices = (
('男','男'),
('女','女')
)
gender = models.CharField(max_length=20,choices=gender_choices,verbose_name='性别')
num = models.IntegerField(verbose_name='数量')
m_id = models.ManyToManyField('Moive')

def __str__(self):
return self.name


class Moive(models.Model):
name = models.CharField(max_length=20,verbose_name='电影名')
picture =models.ImageField(upload_to='upload',max_length=255,verbose_name='图片')
date = models.DateField(auto_now_add=True,verbose_name='上映时间')
number = models.IntegerField(verbose_name='人数')
def __str__(self):
return self.name




# Create your models here.


views.py :::
from django.shortcuts import render,HttpResponse,redirect
import os
from test4 import settings
from movie import models

def add_movie(request):
# user_id = request.session.get('user_id') #取session
if request.method == 'GET':
return render(request, 'add_movie.html')
if request.method == 'POST':
name = request.POST.get('name')
picture = request.FILES.get('picture')
f = open(os.path.join(settings.UPLOAD_ROOT, '', picture.name), 'wb')

# 写文件 遍历图片文件流
for chunk in picture.chunks():
f.write(chunk)
# 关闭文件流
f.close()
if name and picture:
models.Moive.objects.create(name=name,picture=picture)
else:
return HttpResponse('不能有空值')
return redirect('/show_movie/')


def show_movie(request):
# user_id = request.session.get('user_id') #取session
movie = models.Moive.objects.all().order_by('date')
context = {
'moive' : movie

}
return render(request, 'show_movie.html', context)

def add_start(request):
if request.method == 'GET':
start = models.Start.objects.all()
movie = models.Moive.objects.all()
return render(request, 'add_start.html', locals())
if request.method == 'POST':
name = request.POST.get('name') # 输入名称
age = request.POST.get('age')
gender = request.POST.get('gender')
movie = request.POST.get('movie')
num = request.POST.get('num')
movies = models.Moive.objects.filter(id=movie).first()
if name and age and gender and movie and num: # 判断是否获取到三个值
creat_start = models.Start.objects.create(name=name, age=age, gender=gender, num=num)
# creat_start.Movie_set.add(movies)
creat_start.m_id.add(movies)
return redirect('/') # 返回
else: # 如果有空值
return HttpResponse('不能有空!')


def index(request):
# user_id = request.session.get('user_id') #取session
start = models.Start.objects.all().order_by('age')
return render(request,'index.html',locals())

def set(request):
start = models.Start.objects.all().order_by('-num')
return render(request,'set.html',locals())

def start_movie(request,id):
start = models.Start.objects.all().filter(id=id).first()
movies = start.m_id.all().order_by('date')
return render(request,'start_movie.html',locals())

# Create your views here
Html页面
add_movie
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<form method="post" action="" enctype="multipart/form-data">
{% csrf_token %}
电影名称:<input type="text" name="name">
<br>
封面图片:<input type="file" name="picture">
<br>

<button type="submit">上传</button>

</form>
</body>
</html>

add_start页面
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<form method="post" action="" enctype="multipart/form-data">
{% csrf_token %}
演员姓名:<input type="text" name="name">
<br>
演员年龄:<input type="text" name="age">
<br>
演员性别:<input name="gender" type="radio" value="男" checked="checked"/>男
<input name="gender" type="radio" value="女"/>女
<br>
参演电影:<select name="movie" id="">
{% for i in movie %}
<option value="{{ i.id }}">{{ i.name }}</option>
{% endfor %}
</select><br>
参演电影数量:<input type="text" name="num">
<br>
<button type="submit">提交</button>

</form>
</body>
</html>

index.html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<table border="1">
<tr>
<th>演员姓名</th>
<th>演员年龄</th>
<th>演员性别</th>
</tr>
{% for i in start %}
<tr>
<th>{{ i.name }}</th>
<th>{{ i.age }}</th>
<th>{{ i.gender }}</th>
</tr>

{% endfor %}


</table>

</body>
</html>
set页面
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<h1>所有的演员</h1>
{% for i in start %}
<a href="/start/{{ i.id }}/"> {{ i.name }} </a>
{% endfor %}
</body>
</html>
show_movie

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>首页展示</title>
</head>
<body>

<table border="1">

<tr>
<td>电影名称</td>
<td>电影日期</td>
<td>展示图片</td>
</tr>
{% for x in moive %}
<tr>
<td>{{ x.name }}</td>
<td>{{ x.date }}</td>
<td><img src="/{{ x.picture }}" alt=""></td>
</tr>
{% endfor %}
</table>



</body>
</html>
start_movie
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<h1>{{ start.name }}出演的电影:</h1>
{% for x in movies %}
{{ x.name }}
{% endfor %}

</body>
</html>


posted on 2019-05-23 17:04  一个不正常的程序猿  阅读(113)  评论(0)    收藏  举报