1 项目创建
mkvirtualenv diag
pip install Django==3.1.3
django-admin startproject IntelligentDiagnose
python manage.py startapp Diagnose
python manage.py migrate
- 更改settings.py文件
ALLOWED_HOSTS = ["*"]
# 'django.middleware.csrf.CsrfViewMiddleware'
LANGUAGE_CODE = 'zh-hans'
TIME_ZONE = 'Asia/Shanghai'
-
更改views urls等文件
# 添加路由 from django.contrib import admin from django.urls import path, include urlpatterns = [ path('admin/', admin.site.urls), path('signal/', include('Diagnose.urls')), ] # 给app添加urls.py from django.conf.urls import url from Diagnose import views urlpatterns = [ url(r'^diagnose', views.diagnose), ] # 视图函数编辑 from django.http import HttpResponse, JsonResponse from django.shortcuts import render import json # Create your views here. def diagnose(request): return HttpResponse("diagnose result")
2 数据库操作
-
新建一个APP存放公共的数据库
python manage.py startapp common
-
在models.py里面创建类
class Customer(models.Model): name = models.CharField(max_length=200) phonenumber = models.CharField(max_length=200) address = models.CharField(max_length=200)
-
在settings里面的INSTALLED_APPS注册数据表
'common.apps.CommonConfig'
-
此时Django已经知道了我们的common应用,我们可以在项目根目录下执行命令:
python manage.py makemigrations common # output: Migrations for 'common' ......
-
上面会在common/migrations/目录下生成相关代码,执行以下命令提交到数据库:
python manage.py migrate
-
更新数据库表
# 1. 添加字段,因为之前可能已经有多条记录了,此时添加字段要设置为允许前面的记录为空 qq = models.CharField(max_length=20, null=True, blank=True) # 注null表示可以为空 blank表示可以为空字符串 # 2. 重复执行上述命令 python manage.py makemigrations common python manage.py migrate
3 Django admin 管理数据
Django提供了一个管理员操作界面可以方便的 添加、修改、删除你定义的 model 表数据。
首先,我们需要创建 一个超级管理员账号。
进入到项目的根目录,执行如下命令,依次输入你要创建的管理员的 登录名、email、密码。
python manage.py createsuperuser
Username (leave blank to use 'kerwin'): kerwin
Email address: 344896224@qq.com
Password:
Password (again):
Superuser created successfully.
注意密码至少8个字符。 这里,我们设置密码为 dg7…
登录admin系统后,发现没有customer表让我们可以添加记录,如果需要这类操作的话,要在common/admin.py添加如下设置:
from django.contrib import admin
from .models import Customer
admin.site.register(Customer)
4 实现如下功能
4.1 功能1
实现一个函数,来处理sales/customers/访问请求,返回数据库中customer表所有记录