天天看点

Django实践笔记Django应用框架注册列表页添加,修改页面fieldsets = #给属性分组

Django应用框架

安装Django:

pip install django -i

http://pypi.douban.com/simple

--trusted-host pypi.douban.com

创建Django项目:

django-admin startproject DjangoDemo1

文件目录层级说明:

manage.py:一个命令行工具,可以使我们用多种方式对Django项目进行交互

project项目目录:

init.py:一个空文件,它告诉python这个目录应该被看做一个python包

setting.py:项目的配置文件

urls.py:项目的URL声明

wsgi.py:项目与WSGI兼容的Web服务器入口

windows安装mysql:

下载地址:

https://dev.mysql.com/downloads/mysql/

跳过登录直接下载

环境变量:

变量名:MYSQL_HOME

变量值:E:mysql-5.7.20-winx64

以管理员身份运行cmd

进入D:mysql-8.0.12-winx64bin

执行:mysqld --initialize-insecure --user=mysql #会生成目录下生成data目录

管理员运行:mysqld -install

启动服务:

net start MySQL

连接:

mysql -u root -p

修改setting.py文件:

DATABASES = {

'default': {

'ENGINE': 'django.db.backends.mysql',

'NAME': 'sunck',

'USER': 'root',

'PASSWORD': '',

'HOST': 'localhost',

'PORT': '3306'

}

创建:app01

执行 python manage.py startapp app01

在setting中奖app01应用加入INSTALL_APPS选项中

INSTALLED_APPS = [

'django.contrib.admin',

'django.contrib.auth',

'django.contrib.contenttypes',

'django.contrib.sessions',

'django.contrib.messages',

'django.contrib.staticfiles',

'app01'

]

创建模型:model.py文件中

class Grades(models.Model):

gname = models.CharField(max_length=20)

gdate = models.DateTimeField()

ggirlnum = models.IntegerField()

gboynum = models.IntegerField()

isDelete = models.BooleanField(default=False)

class Students(models.Model):

sname = models.CharField(max_length=20)

sgender = models.BooleanField(default=True)

sage = models.IntegerField()

scontent = models.CharField(max_length=20)

关联外键

sgrade = models.ForeignKey("Grades")

生成数据表在数据库中:

生成迁移文件:python manage.py makemigrations #在migrations目录下生成一个迁移文件

执行迁移:python manage.py migrate

执行完之后去数据库中查询数据,发现表已经生成。

测试数据操作:

进入python shell : python manage.py shell

引入一些包:

from app01.models import Grades,Students

from django.utils import timezone

from datetime import *

查询所有数据:

Grades.object.all()

添加数据:创建一个模型类的对象实例

创建对象

grade1 = Grades()

grade1.gname = "gaojianshuai"

grade1.gdate = datetime(year=2019,month=12,day=9)

grade1.ggirlnum = 3

grade1.gboynum=30

grade1.save()

grade2.gname = "linjiayin"

grade2.ggirlnum = 4

grade2.gboynum=13

grade2.gdate = datetime(year=2020,month=1,day=25)

grade2.save()

查看某个对象:

Grades.objects.all()

Grades.objects.get(pk=1)

Grades.objects.get(pk=2)

grade2

修改某个属性:模型对象.属性 = 新值

grade2.ggirlnum = 555

删除数据:

模型对象.delete() grade2.delete()

启动服务器:

python manage.py runserver

admin站点管理:

内容发布:负责添加、修改、删除内容

配置admin应用:在setting中的INSTALL_APPS中添加'django.contrib.admin',默认是已经添加好的

创建管理员用户:python manage.py createsuperuser

账号密码:sunck 1234567890

访问:127.0.0.1:8000

127.0.0.1:8000/admin

界面汉化:

在setting文件中修改如下

LANGUAGE_CODE = 'en-us' #修改为zh-Hans

TIME_ZONE = 'Asia/Shanghai'

管理数据表:

通过修改admin.py文件:

from .models import Grades,Students

注册

admin.site.register(Grades)

admin.site.register(Students)

自定义管理页面:

列表页

list_display = ['pk', 'gname', 'gdate', 'ggirlnum', 'gboynum']#显示字段

list_filter = ['gname']#过滤字段

search_fields = ['gname']#搜索字段

list_per_page = 5#分页

添加,修改页面

fields = [ 'gname', 'ggirlnum', 'gdate', 'gboynum', 'idDelete']#属性的先后顺序

fieldsets = #给属性分组

注意:field与fieldset不能同时使用