python 版本选择 3.6.x 0,5
django 版本 1.11.4 1.11.28 都行
mysql 版本 8.0
创建我的app
python manage.py startapp myApp
安装pymysql
pip install pymysql -i https://pypi.tuna.tsinghua.edu.cn/simple/
数据库连接
定义类
在数据库生成迁移文件
F:\python代码\jango1>python manage.py makemigrations
Migrations for 'myApp':
myApp\migrations\0001_initial.py
- Create model Grades
- Create model Students
生成数据表
F:\python代码\jango1>python manage.py migrate
Operations to perform:
Apply all migrations: admin, auth, contenttypes, myApp, sessions
Running migrations:
Applying contenttypes.0001_initial... OK
Applying auth.0001_initial... OK
Applying admin.0001_initial... OK
Applying admin.0002_logentry_remove_auto_add... OK
Applying contenttypes.0002_remove_content_type_name... OK
Applying auth.0002_alter_permission_name_max_length... OK
Applying auth.0003_alter_user_email_max_length... OK
Applying auth.0004_alter_user_username_opts... OK
Applying auth.0005_alter_user_last_login_null... OK
Applying auth.0006_require_contenttypes_0002... OK
Applying auth.0007_alter_validators_add_error_messages... OK
Applying auth.0008_alter_user_username_max_length... OK
Applying myApp.0001_initial... OK
Applying sessions.0001_initial... OK
数据库查看
mysql> show tables;
查看生成的班级表
mysql> desc myApp_grades;
+----------+-------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+----------+-------------+------+-----+---------+----------------+
| id | int | NO | PRI | NULL | auto_increment |
| gname | varchar(20) | NO | | NULL | |
| gdate | date | NO | | NULL | |
| ggitlnum | int | NO | | NULL | |
| gboynum | int | NO | | NULL | |
| isDelete | tinyint(1) | NO | | NULL | |
+----------+-------------+------+-----+---------+----------------+
6 rows in set (0.01 sec)
创建对象
>>> grade1 = Grades()
插入数据
>>> grade1.gname = "paython01"
>>> grade1.gdate = datetime(year=2020,month=12,day=31)
>>> grade1.ggitlnum = 3
>>> grade1.gboynum = 30
保存
>>> grade1.save()
测试数据操作
E:\djiango\jango01>python manage.py shell
Python 3.6.0 (v3.6.0:41df79263a11, Dec 23 2016, 08:06:12) [MSC v.1900 64 bit (AMD64)] on win32
Type "help", "copyright", "credits" or "license" for more information.
(InteractiveConsole)
>>> from myApp.models import Grades,Students
>>> from django.utils import timezone
>>> from datetime import *
查看所有数据
>>> Grades.objects.all()
<QuerySet []>
查看第一个数据
>>> Grades.objects.get(pk=1)
修改数据,再次赋值,覆盖
>>> grade1.ggitlnum = 3
>>> grade1.save()
数据删除,模型对象.delete()
>>> grade1.delete()
>>> stu = Students()
>>> stu.sname = "子龙哥"
>>> stu.sgender = False
>>> stu.sage = 18
>>> stu.scontend = "我叫子龙哥哥"
>>> stu.sgrade = grade1
>>> stu.save()
>>> stu2 = Students()
>>> stu2.sname = "孟珊"
>>> stu2.sage = 18
>>> stu2.scontend = "我是子龙哥哥的女朋友"
>>> stu2.sgrade =grade1
>>> stu2.save()
>>> grade1.students_set.all()
<QuerySet [<Students: Students object>, <Students: Students object>]>
直接添加
>>> stu3 = grade1.students_set.create(sname=u'琴',sgender=True,scontend=u'我叫琴姐姐',sage=20)
mysql> select * from myApp_students;
+----+--------+---------+------+--------------------------------+----------+-----------+
| id | sname | sgender | sage | scontend | isDelete | sgrade_id |
+----+--------+---------+------+--------------------------------+----------+-----------+
| 3 | 子龙 | 0 | 18 | 我叫子龙哥哥 | 0 | 3 |
| 4 | 孟珊 | 1 | 18 | 我是子龙哥哥的女朋友 | 0 | 3 |
| 5 | 琴 | 1 | 20 | 我叫琴姐姐 | 0 | 3 |
+----+--------+---------+------+--------------------------------+----------+-----------+
3 rows in set (0.00 sec)