一. 视图函数
(1). 基本概念
视图的作用是接受和发送Web请求,主要用来处理网站的业务逻辑
(2). 开发第一个视图
在polls/views.py下,写入以下代码
from django.shortcuts import render
from django.http import HttpResponse
# Create your views here.
def index(request):
return HttpResponse("欢迎来到投票系统!")
注:request这个参数是必须要传的,具体是什么后面会介绍
写完视图函数后,先在poll目录下配置分布式路由,新建一个urls.py文件,写入以下代码
from django.urls import path
from . import views
urlpatterns = [
path('', views.index, name="index"),
]
再去主目录的urls.py将这个路由包括进去
from django.contrib import admin
from django.urls import path, include
urlpatterns = [
path('admin/', admin.site.urls),
path('index', include('poll.urls')),
]
在浏览器中打开”http://127.0.0.1:8000/index“,如果没报错,应该就看到页面了
二. 对数据库的配置
这里用MySQL数据库
直接进入到settings.py,大概76行的位置
要先在mysql中创建相对应的数据库哦
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql',
'NAME': 'test1_0719', # 名字可以随便取
'USER':'root',
'PASSWORD':'123456',
'HOST':'127.0.0.1', # 本机环回地址
'PORT':'3306', # 默认端口号3306
}
}
三. 建立模型
在poll/models.py写入以下代码:
import datetime
from django.db import models
from django.utils import timezone
# Create your models here.
class Question(models.Model):
question_text = models.CharField(max_length=200)
pub_date = models.DateTimeField(verbose_name='date published')
def was_published_recently(self):
return self.pub_date >= timezone.now() - datetime.timedelta(days=1)
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) # 整数类型,映射到数据库中会变成11位的int类型
def __str__(self):
return self.choice_text
接着在命令行执行以下命令:
python3 manage.py makemigrations
python3 manage.py migrate
这两个脚本命令是为了告诉MySQL数据库,models发生更改。
四. Admin模块
python manage.py createsuperuser
接下来跟着命令行做就行了
在浏览器输入http://127.0.0.1:8000/admin/,就可以进入superuser界面
在poll/admin.py输入以下代码
from django.contrib import admin
# Register your models here.
from . models import Question
admin.site.register(Question)
刷新页面就可以得到新的界面,然后点击加号就可以编辑属于自己的问题。
现在我们有个后端页面,但是没有前端页面,这在Django—3中会讲到。