Python Django官网:https://www.djangoproject.com/
1、创建一个Django项目
2、新增一个app应用
python manage.py startapp stu
INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'stu'
]
3、更换mysql数据源配置信息
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql',
'NAME': 'python',
'HOST':'127.0.0.1',
'PORT':'3306',
'USER':'mybatis_ssm',
'PASSWORD':'xiaoli'
}
}4、创建模型类post
class Post(models.Model):
# 主键(不写的话Python会自动创建一个列名为id的数据库列名)
pid = models.AutoField(primary_key=True)
# 长度为30的唯一的字符串,admin中表单自带验证,该字段不能为空(blank=false),数据库值插入不能为空
title = models.CharField(max_length=30,unique=True,blank=False,null=False)
# 文本域
content = models.TextField()
# 点击量必须为正整数
access_count = models.PositiveIntegerField()
# 打赏为五位有效数字,小数点后最多两位
price = models.DecimalField(max_digits=5,decimal_places=2)
# 是否逻辑删除,默认false,也就是0
isdelete = models.BooleanField()
# 执行插入操作的时候默认在数据库中添加为当前时间 年月日
created = models.DateField(auto_now_add=True)
# 每次操作数据的时候都会将当前时间更新到数据库
modified = models.DateTimeField(auto_now=True)
# 上传图片到指定的目录下,在这里指的是"test3/upload/images"下
img = models.ImageField(upload_to='upload/images')
# 上传文件到指定的目录下,在这里指的是"test3/upload/files"下
file = models.FileField(upload_to='upload/files')
class Meta:
# 这里一般不要手动去更改表名,默认生成的表名容易从代码中去找对应的实体类
db_table='t_post'
def __unicode__(self):
return u'Post:%s'%self.title5、更换数据源
pip install MySQL-python-1.2.5-cp27-none-win_amd64.whl
6、添加迁移文件
python manage.py makemigrations stu
出现下列错误:

解决方法:
pip install Pillow
然后再执行下
python manage.py makemigrations stu
注意:这样做数据库表是能够创建的,但是项目起不起来,控制台说是因为path问题,但是本人百度许久并未解决,如果有人解决这一问题,请联系QQ:4929424758,拜谢!!!
在这里为了案例顺利进行,我们暂且先将下面字段注释;
img = models.ImageField(upload_to='upload/images')
7、执行迁移文件
python manage.py migrate
8、将生成的数据库表的实体类交给admin进行管理
编辑admin.py(stu/admin.py)
from django.contrib import admin from .models import * # Register your models here. admin.site.register(Post)
9、创建admin管理后台的超级用户
python manage.py createsuperuser

10、进入Django后台admin管理界面
浏览器输入:



这是正常数据提交的截图

并且我们可以看到,在工程中的指定文件夹下出现了指定的文件,代表上传成功

数据库中也存在了对应的数据
总结重点
#### 常用字段类型 * django所有的数据模型都继承自models.Model * CharField max_length (输入框) * TextField 没有长度限制的字符串 (文本域) * DateField 日期 * DateTimeField 日期+时间 * BooleanField 真假 * NullBooleanField Null,真假, * Integer 整数 * PositiveIntegerField 正整数 * DecimalField max_digits(几位数) decimal_places(小数点后保留几位) * ImageField 图片 依赖于 Pillow(处理图片) upload_to='upload' 指定文件上传到目录 * FileField(ImageField继承FileField) * AutoField * ForeignKey 1:n * ManyToManyField n:n * EmailField 邮箱 * UUIDField 重复的概率非常低基本可以忽略,全世界都不一样的标示,uuid的产生和服务器的环境有关(CPU,网关,) 唯一性的标示,用户模块,订单号 * 不同的字段在后台对应不同的html的组件 ImageField 依赖于Pillow组件(python库) #### 常用属性 * unique 标示这个字段唯一 * default 默认的意思 ,(如果不写的话就使用默认的值) * null=True 允许字段为null,(允许数据库为null)数据库层面的 * blank=True 表单阶段的,admin后台的 * auto_now 针对时间的,自动调整当前,(当修改条目的时候,这个时间会自动更新),每次修改都会更新 (修改,保存的时候才会生效,) * auto_now_add 针对时间的,只添加一次,(创建的时间) ### 重点理解属性 ### * 表单层面的东西(js判断字段是否是" "),不需要重写迁移数据库 * unique=True 可以任何字段 * default 数据库+表单层面(同时生效) * auto_now_add 创建的时候会自动的添加时间(数据库),(后台表单层面找不到这个字段) * auto_now 每次修改的时候自动更新,(数据库+表单层面) * null=True 数据库层面,允许为Null,不是空字符串 * blank=True 表单层面的,后台选填(表单项元素可以为空,表单不会进行非空校验) ### uuid ### uuid.uuid4().get_hex() ### django迁移失败如何处理 ### * 删除模块下(问题模块)的所有的迁移记录 * 删除数据库中django_migrations中问题模块的迁移记录 DELETE FROM django_migrations WHERE app='模块名' * 删除这个模块下已经产生的所有的表 * 重新生成迁移文件 * 重新迁移#### 修改settings.py文件后台页面显示中文
`
LANGUAGE_CODE = 'en-us'
TIME_ZONE = 'UTC'
修改为:
LANGUAGE_CODE = 'zh-Hans'
TIME_ZONE = 'Asia/Shanghai'
over......
备案号:湘ICP备19000029号
Copyright © 2018-2019 javaxl晓码阁 版权所有