django 模型(数据库)
2018-01-12 16:06
701 查看
准备工作
新建一个对象的方法
查找一个对象的方法
通过web页面录入student信息
配置数据库 setting.py
编辑models.py并生成对应的表,如student,里面有三列数据,分别是student、age、height(models.py)
生成配置数据并在数据库中创建表
ok,现在就可以操作数据库了
我们通过django shell 命令行来操作
第四种方法是防止重复很好的方法,但是速度要相对慢些,返回一个元组,第一个为Person对象,第二个为True或False, 新建时返回的是True, 已经存在时返回False.
查找所有对象,objects.all()可以获取到所有对象
objects.all()还可以切片操作,例如获取前两个用户
如果要获取满足一些条件的对象,可通过filter进行筛选
1、获取name为wanglei的对象
2、获取name中包含lei的对象,区分大小写
3、获取name中包含Lei的对象,不区分大小写
4、获取name中以w开头的对象,区分大小写
5、获取name中以W开头的对象,不区分大小写
如果要排除一些条件的对象,可通过exclude进行过滤
1、排除height为170的所有对象
2、查找以W开头的用户,不区分大小写,并排除height为150的用户
2、编写forms.py
3、编写views.py
4、编写template
index.html
return.html
5、编写urls.py
6、运行python程序
7、访问页面插入数据并提交
单击提交数据
提交数据后显示信息插入成功,继续
再次回到学生数据插入页面
8、查看插入至数据库的学生信息
新建一个对象的方法
查找一个对象的方法
通过web页面录入student信息
准备工作
首先 Django 要操作数据库之前,需要先配置DATABASES信息,并且编辑models.py,生成对应的表配置数据库 setting.py
DATABASES = { 'default': { 'ENGINE': 'django.db.backends.mysql', 'NAME': 'student', 'USER': 'student', 'PASSWORD': 'student', 'HOST': 'localhost', 'PORT': '3306', } }
编辑models.py并生成对应的表,如student,里面有三列数据,分别是student、age、height(models.py)
# -*- coding: utf-8 -*- from __future__ import unicode_literals from django.db import models class student(models.Model): name = models.CharField(max_length=30) age = models.IntegerField() height = models.IntegerField()
生成配置数据并在数据库中创建表
python manage.py makemigrations python manage.py migrate
ok,现在就可以操作数据库了
我们通过django shell 命令行来操作
python manage.py shell from a.models import student
新建一个对象的方法
1、student.objects.create(name='xx', age=xx, height=xx) 2、S = student.objects.create(name='xx', age=xx, height=xx) S.save() 3、S = student.objects.create(name='xx') S.age = xx S.height = xx S.save() 4、student.objects.get_or_create(name='xx', age=xx, height=xx)
第四种方法是防止重复很好的方法,但是速度要相对慢些,返回一个元组,第一个为Person对象,第二个为True或False, 新建时返回的是True, 已经存在时返回False.
查找一个对象的方法
查找对象,objects.get()只可以查找单个对象>>> student.objects.get(name='wanglei') <student: wanglei> >>> student.objects.get(age=25) <student: wanglei>
查找所有对象,objects.all()可以获取到所有对象
>>> student.objects.all() <QuerySet [<student: wanglei>, <student: hongxue>, <student: wanglei>]>
objects.all()还可以切片操作,例如获取前两个用户
>>> student.objects.all()[:2] <QuerySet [<student: wanglei>, <student: hongxue>]>
如果要获取满足一些条件的对象,可通过filter进行筛选
1、获取name为wanglei的对象
student.objects.filter(name='wanglei')
2、获取name中包含lei的对象,区分大小写
>>> student.objects.filter(name__contains='lei') <QuerySet [<student: wanglei>, <student: wanglei>]>
3、获取name中包含Lei的对象,不区分大小写
>>> student.objects.filter(name__icontains='Lei') <QuerySet [<student: wanglei>, <student: wanglei>]>
4、获取name中以w开头的对象,区分大小写
>>> student.objects.filter(name__regex='^w') <QuerySet [<student: wanglei>, <student: wanglei>]>
5、获取name中以W开头的对象,不区分大小写
>>> student.objects.filter(name__iregex='^W') <QuerySet [<student: wanglei>, <student: wanglei>]>
如果要排除一些条件的对象,可通过exclude进行过滤
1、排除height为170的所有对象
>>> student.objects.exclude(height=170) <QuerySet [<student: hongxue>, <student: wanglei>]>
2、查找以W开头的用户,不区分大小写,并排除height为150的用户
>>> student.objects.filter(name__regex='^w').exclude(height=150) <QuerySet [<student: wanglei>]>
通过web页面录入student信息
1、编写models.py# -*- coding: utf-8 -*- from __future__ import unicode_literals from django.db import models class student(models.Model): name = models.CharField(max_length=30) age = models.IntegerField() height = models.IntegerField()
2、编写forms.py
from django import forms class AddStudentInfo(forms.Form): name = forms.CharField(max_length=30) age = forms.IntegerField() height = forms.IntegerField()
3、编写views.py
# -*- coding: utf-8 -*- from __future__ import unicode_literals from django.shortcuts import render from .models import student from .forms import AddStudentInfo def index(request): if request.method == 'POST': stu = AddStudentInfo(request.POST) if stu.is_valid(): name = stu.cleaned_data['name'] age = stu.cleaned_data['age'] height = stu.cleaned_data['height'] student.objects.get_or_create(name=name, age=age, height=height) return render(request, 'return.html') else: stu = AddStudentInfo() return render(request, 'index.html', {'stu': stu})
4、编写template
index.html
<!DOCTYPE html> <html> <head> <title>insert student info</title> </head> <body> <form method='post'> {% csrf_token %} {{ stu }} <input type='submit' value='提交'> </form> </body> </html>
return.html
<a href='/index'>student insert success, next</a>
5、编写urls.py
from django.conf.urls import url from django.contrib import admin from a import views urlpatterns = [ url(r'^index/$', views.index, name='index'), url(r'^admin/', admin.site.urls), ]
6、运行python程序
python manage.py runserver 0.0.0.0:8000
7、访问页面插入数据并提交
单击提交数据
提交数据后显示信息插入成功,继续
再次回到学生数据插入页面
8、查看插入至数据库的学生信息
相关文章推荐
- Django来敲门~第一部分【5.2.模型和数据库交互】
- Django--model模型绑定_数据库操作
- 创建 Django 博客的数据库模型
- Django --- 从已有数据库生成模型 (model)
- Django 模型(数据库):
- Python第十三天 django 1.6 导入模板 定义数据模型 访问数据库 GET和POST方法 SimpleCMDB项目 urllib模块 urllib2模块 httplib模块 django和web服务器整合 wsgi模块 gunicorn模块
- Django学习06---Model模型(数据库)
- 认识django2.0读书笔记(5)---第五章 模型(django数据库层)
- 3 - 创建 Django 博客的数据库模型
- Django模型-数据库操作
- python初学-04django(数据库,模型)
- Django,数据模型创建之数据库API参考(转载)
- django如何将修改好的新模型写入数据库
- 通过数据库对Django进行删除字段和删除模型的操作
- django 模型model与数据库2——函数
- django -- 用包来组织数据库模型
- Django项目实践3 - Django模型(view-数据库)
- Django学习(八)(模型数据库)
- Django模型--数据库操作
- Django项目实践3 - Django模型(字段、数据库操作及模型继承)