python django 学习第3天 文件长传

在根目录下新建media目录
在settings.py 加入代码
为上传文件操作做准备
MEDIA_ROOT = os.path.join(BASE_DIR, ‘media’)
MEDIA_URL = “/media/”

做一个新闻调查页面
在views 中加入 以下代码
先导入环境包
from datetime import datetime
from django.core.exceptions import ObjectDoesNotExist
from django.http import HttpResponseRedirect, Http404
from django.shortcuts import get_object_or_404, render
from django.urls import reverse
from DjangoSample import settings

from .models import Question, Choice

----------------------------在views.py 加入代码 ---------------------------------------------------------------------------
///

#--------新闻调查模板-----------

def index(request):
print(settings.STATIC_ROOT)
latest_question_list = Question.objects.filter(pub_date__lte=datetime.now()).order_by(’-pub_date’)[:5]

context = {
    'latest_question_list': latest_question_list,
}
return render(request, 'ch01/index.html', context)

def detail(request, question_id):
try:
question = Question.objects.filter(pub_date__lte=datetime.now()).get(pk=question_id)
except ObjectDoesNotExist as e:
raise Http404(“查看的问题不存在!”)
return render(request, ‘ch01/detail.html’, {‘question’: question})

def results(request, question_id):
question = get_object_or_404(Question, pk=question_id)
return render(request, ‘ch01/results.html’, {‘question’: question})

def vote(request, question_id):
question = get_object_or_404(Question, pk=question_id)
try:
selected_choice = question.choice_set.get(pk=request.POST[‘choice’])
except (KeyError, Choice.DoesNotExist):
return render(request, ‘ch01/detail.html’, {
‘question’: question,
‘error_message’: “你没有选择一个选项。”,
})
else:
selected_choice.votes += 1
selected_choice.save()
return HttpResponseRedirect(reverse(‘ch01:results’, args=(question.id,)))

在urls.py中配置 路径
path(r’index’, views.index, name=“index”),
path(r’results’, views.index, name=“results”),
re_path(r’^(?P<question_id>[0-9]+)/KaTeX parse error: Expected 'EOF', got '#' at position 38: …'tb1'), #̲ ex: /ch01/5/ …’, views.detail, name=‘detail’),
# ex: /ch01/5/results/
re_path(r’^(?P<question_id>[0-9]+)/results/KaTeX parse error: Expected 'EOF', got '#' at position 40: …results'), #̲ ex: /ch01/5/vo…’, views.vote, name=‘vote’),



from django.db import models
from datetime import datetime,timedelta

Create your models here.

class Question(models.Model):
“”“类变量用来定义成员变量的特性,框架自动创建对应的成员变量”""
question_text = models.CharField(‘问题’, max_length=200)
pub_date = models.DateTimeField(‘发布日期’)

def was_published_recently(self):
    print(type(self))
    print(type(self.pub_date))
    now = datetime.now()
    past = now - timedelta(hours=72)
    return past <= self.pub_date <= now

was_published_recently.short_description = '最新发布?'
was_published_recently.boolean = True

def pub_date_str(self):
    return self.pub_date.strftime("%Y-%m-%d %H:%M:%S")

pub_date_str.short_description = '发布日期'
pub_date_str.admin_order_field = 'pub_date'

class Meta:
    verbose_name = "问题表"
    verbose_name_plural = verbose_name

def __str__(self):
    return self.question_text

class Choice(models.Model):
question = models.ForeignKey(Question, on_delete=models.CASCADE)
choice_text = models.CharField(‘选项’, max_length=200)
votes = models.IntegerField(‘票数’, default=0)

def __str__(self):
    return self.choice_text
    ---------------------------------------------------------------------------------------------------------
    

#------创建脚本命令--------------
python manage.py makemigrations ch01
python manage.py migrate


这个时候 可以通过数据库看到表数据了

在这里插入图片描述
没执行命令前的状态

执行命令表 后的状态
在这里插入图片描述

启动服务器
打 开网址
http://127.0.0.1:8000/admin

可以看到后台的页面

在这里插入图片描述

#-------创建管理员账号-----------
python manage.py createsuperuser --username root#创建管理员账号

在这里插入图片描述

重新启动服务器

python manage.py runserver

打 开网址
http://127.0.0.1:8000/admin

输入用户名 和 密码

在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/m0_37317411/article/details/100150590