默认使用了一个user模块,创建的django项目名为dj_test
1.user文件下,models.py中写上创建Category数据库表
#user.models content from django.db import models # Create your models here. #注:每创建一个table,系统默认第一个字段id,自动新增,无需再次新增 class Category(models.Model):#类名就是表名 name = models.CharField(verbose_name='分类名',max_length=50,unique=True)#定义字符字段name creat_time = models.DateTimeField(verbose_name='创建时间',auto_now_add=True)#datetime字段create_time update_time = models.DateTimeField(verbose_name='修改时间',auto_now=True) is_delete= models.BooleanField(verbose_name="是否删除",default=False) class Meta:#Meta用来自定义表内容 db_table = 'category'#自定义table名称 ordering=['-creat_time']#定义排序按照xxx字段排序,默认升序,加减号表示降序 verbose_name = '文章分类'#定义模型中的名称,用于后台管理操作方便 verbose_name_plural = verbose_name#定义复数名词,不然系统会自动在verbose_name后面加s,如'文章分类s' def __str__(self):#默认返回系统对象名,需要重新命名来识别 return self.name
2.执行python manage.py makemigrations #生成迁移文件,创建表结构
3.执行python manage.py migrate #同步到数据库,生成数据库表
执行2和3操作后,user下方同级目录会生成一个db.sqlite3的文件,右击copy path(绝对路径),复制到navicat或者pycharm自带数据库连接工具上,检查数据库结构
4.启用admin管理工具,在管理平台添加数据
在user-admin.py中,将Category表注册到admin后台,user admin.py添加注册代码
# user admin.py content from django.contrib import admin # Register your models here. #激活测试管理工具,需要先将category表注册到管理工具上 from . import models admin.site.register(models.Category)
在浏览器输入http://127.0.0.1:8000/admin/ 进入管理工具页面。此时没有账户和密码,需要在命令行执行python manage.py createsuperuser 来创建超级用户,设置账户和密码
进入管理平台后,可以手动页面上添加和修改数据,无需直接去操作数据库,
注意:每次新增/修改/删除等操作,都需要执行python manage.py makemigrations 和 python manage.py migrate语句
5.在user view.py中定义index方法
1 import datetime 2 3 from django.shortcuts import render 4 5 from .models import Category 6 # Create your views here. 7 def index(request): 8 catagories = Category.objects.all()#获取所有数据 9 print(catagories) 10 time = datetime.datetime.now() 11 data = {'nav':catagories,'time':time} 12 return render(request,'index.html',data)#引用数据需要通过字典data引用
6.在user上方统计目录templates中创建index.html文件
1 <!DOCTYPE html> 2 <html lang="en"> 3 <head> 4 <meta charset="UTF-8"> 5 <title>Django</title> 6 </head> 7 <body> 8 <h1>欢迎光临!今天的日期是{{ time }}</h1> 9 <ul> 10 {% for n in nav %} 11 <li>{{ n }}</li> 12 {% endfor %} 13 </ul> 14 </body> 15 </html>
7.dj_test目录下的urls.py,需要添加步骤5view.py定义的index方法
1 from django.contrib import admin 2 from django.urls import path 3 from user.views import index 4 5 urlpatterns = [ 6 path('admin/', admin.site.urls), 7 path('index/', index),#第二个参数index 指的是view.py中定义的index方法 8 ]
8.在浏览器中输入http://127.0.0.1:8000/index/ ,即可查看