民意调查员
民意调查员
简介:我们将使用 Django 创建一个 pollster(投票系统)Web 应用程序。此应用程序将进行一系列问题以及许多选择。用户可以通过选择一个选项来为该问题投票。根据答案,将计算总票数并向用户显示。用户还可以直接在网站上查看特定问题的总投票结果。我们还将构建此项目的 admin 部分。将允许管理员用户在应用程序中添加问题和管理问题
先决条件:了解 Python 和 Django 框架的基础知识。应在系统中安装 Python。Visual Studio Code 或任何代码编辑器来处理应用程序。
项目中使用的技术:Django 框架和 Django 默认附带的 SQLite 数据库。
项目实现
创建项目
第一步
创建空的目录 pollster_project .
第二步
创建cmd 或者是windows +R
第三步
cd进入新创建的目录pollster_project
cd pollster_project |
---|
第四步
建立venv虚拟环境
pip install pipenv
pipenv shell
Step-3: A Pipfile 通过上述步骤,将在您的文件夹中创建一个 Pipfile。现在使用以下命令将 Django 安装到您的文件夹中。
pipenv install django
Step-4: 建立pollster项目
django-admin startproject pollster
将创建一个名为 pollster 的新文件夹。使用以下命令切换到 pollster 文件夹。
cd pollster
目录项目结构
在这里,您可以使用以下命令启动服务器,并检查应用程序是否正在运行,是否在浏览器中使用您的 http://127.0.0.1:8000/。
python manage.py runserver
Step-5: 创建polls
python manage.py startapp polls
下面是在项目中创建 ''polls' 应用程序后的文件夹结构。
创建 Models
Step-1: 修改models
在您的 models.py 文件中编写下面给出的代码以在数据库中创建两个表。一个是 'Question' ,另一个是 'Choice'。“Question”将有两个字段,即“question_text”和一个“pub_date”。Choice 有三个字段:“question”、“choice_text”和 “votes”。每个 Choice 都与一个 Question 相关联。
from django.db import models# Create your models here.class Question(models.Model): question_text = models.CharField(max_length=200) pub_date = models.DateTimeField('date published') def __str__(self): return self.question_textclass 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
Step-2: 设置settings
转到 settings.py 文件,然后在列表中记下下面的代码INSTALLED_APPS以将应用程序包含在我们的项目中。这将引用 polls -> apps.py -> PollsConfig 类。
INSTALLED_APPS = [ 'polls.apps.PollsConfig', 'django.contrib.admin', 'django.contrib.auth', 'django.contrib.contenttypes', 'django.contrib.sessions', 'django.contrib.messages', 'django.contrib.staticfiles',]
Step-3: 创建迁移
我们已经对数据库进行了更改并创建了一些表,但为了反映这些更改,我们需要在此处创建迁移,然后 Django 应用程序将存储对模型的更改。运行下面给出的以下命令以创建迁移。
python manage.py makemigrations polls
python manage.py migrate
python manage.py makemigrations polls
Migrations for 'polls':polls\migrations\0001_initial.py+ Create model Question+ Create model Choice(.venv) F:\work\toDoProject\todo_site>python manage.py migrate
Operations to perform:Apply all migrations: admin, auth, contenttypes, polls, session