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-winx64\bin 执行: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) isDelete = models.BooleanField(default=False)
关联外键
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
grade2.save()
删除数据:
模型对象.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不能同时使用