环境:windows ,已经安装了 mysql, 安装了django
1、新建一个django 项目
2、新建一个子应用 python manage.py startapp moelsinfo
3、在根目录下新建一个文件夹 templates ,在该文件夹下新建 modelsinfo.html
4、创建数据库(hh_test )
4.1、打开mysql 客户端输入密码
4.2、输入命令 create database hh_test DEFAULT CHARSET utf8 COLLATE utf8_general_ci;
mysql> create database hh_test DEFAULT CHARSET utf8 COLLATE utf8_general_ci;
Query OK, 1 row affected, 2 warnings (0.01 sec)
5、在 setting.py 中配置数据库
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql',
'NAME': 'hh_test', # 数据库名称
'USER':'root',
'PASSWORD':'admin',
'HOST':'127.0.0.1',
'PORT':'3306'
}
}
6、在models.py 中创建一个类(用于创建一张表)
from django.db import models
# Create your models here.
class Modelsuser(models.Model):
# unique 唯一值索引,该值不允许重复,blank=False 该值不允许为空
username = models.CharField(unique=True,max_length=20,blank=False)
age = models.SmallIntegerField(default=0)
phone = models.SmallIntegerField(db_index=True,blank=True,default=0)
email = models.EmailField(blank=True,default='')
info = models.TextField()
# 创建添加时间
create_time = models.DateTimeField(auto_created=True)
# 更新时更新时间
update_time = models.DateTimeField(auto_now=True)
7、在 子应用文件夹下新建 urls.py
from django.urls import path
from .views import Modelsinfo
urlpatterns = [
path('modelinfo/',Modelsinfo.as_view())
]
8、在seting.py 中注册子应用,并在 urls.py 中引入子路由
9、在根目录的 __init__.py 中
import pymysql
pymysql.install_as_MySQLdb()
10、运行该项目,并创建表
python manage.py runserver
python manage.py makemigration
python manage.py migrate
10、在PyCharm中的settings的plugins查找并安装插件“Database Navigator”并连接数据库
11、查看创建成功的表
参考我往期 windows 创建python django项目安装 mysql_Drizzlejj的博客-优快云博客
12、在 views.py 中增加数据到表中
from django.shortcuts import render
import time
# Create your views here.
from .models import Modelsuser
from django.views.generic import View
class Modelsinfo(View):
def get(self,request):
# 创建数据 第一种方法
Modelsuser.objects.create(
username='jack',
age=19,
phone=911,
email='admin@admin.com',
create_time= '2022-10-21'
)
# 创建数据 第二种方法
user = Modelsuser(username='jamarfk',age=17,phone=114,email='admin@admin.com',create_time= '2022-10-21')
user.save()
# 创建数据 第三种方法
# user = Modelsuser()
# user.username = 'matktt'
# user.age = 99
# user.phone=112
# user.create_time = '2022-10-21'
# user.save()
return render(request,'modelsinfo.html')
13、查看
首先是查看数据库中表格内容,右击选择数据库表格users,选择“Edit Data”,在弹框中选择“No Filter”,就能看到该表格的所有记录,如下:
属性
'''
字符串与数字类型
字段名 描述 举例
CharField 字符串类型 'abc'
TextField 文本类型 'abcdefg.….'
EmailField 邮箱类型 'admin@admin.com'
UrlField 网址类型 'http://www.baidu.com'
BooleanField 布尔类型 True False
Nul1BooleanField 可为空的布尔类型 None True False
IntegerField 整型 (-2147483648,2147483647)
Sma11IntegerField 短整型 (-32768,32767)
BigIntegerField 长整型
PositiveIntegerField 正整型 (0,2147483647)
PositiveSmallIntegerField 短正整形 (0,32767)
FloatField 浮点类型 3.14
DecimalField 十进制小数 12345.123123
时间类型
字段名 描述 举例
DateFiled 日期类型 xxxx-xx-xx
DataTimeField 日期类型 xxxx-xx-xx xx:xx:xx
TimeField 时间类型 xx:xx:xx
文件类型
字段名 描述 举例
ImageField 图片类型 xxx.jpg
FieleField 文件类型 任意文件类型
特殊类型属性介绍
字段名 描述 举例 作用于
max_digits 数字种允许的最大位数 12 DecimaField
decimal_places 存储的十进制位数 2 DecimaField
with_field 图片宽(可不传) 1024 ImageField
height_field 图片高(可不传) 576 ImageField
upload_to 保存上传文件的本地文件路径 ’xx/xx.xx‘ FileField ImageField
公共属性
字段名 描述 举例 作用于
null 值是否设为空 True False
blank 值是否可为空 True False
primary_key 设置主键 True 整型
auto_now 时间自动添加 True 时间类型
auto_now_add 自动添加时间,但仅在创建的时候 True 时间类型
max_length 字段长度 字符串类型
default 默认值 xxx
verbose_name admin种显示的名字 name
db_colum 数据库字段名
unique 唯一索引 True
db_index 普通索引 True
表关联的方法
字段名 描述
ForeignKey 一对多
OneToOneField 一对一
ManyToManyField 多对多
属性名 描述
related_name 关联表的名字 related_name = 'profile'
on_delete 外键删除的对策 on_delete_models.SET_NULL(CASCADE,PROTECT)