django 数据库mysql学习向数据库表中添加数据

环境: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的博客-CSDN博客

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)

  • 2
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值