pythonWeb -- Django开发- 模型Model 和 数据库的操作
2017-07-25 00:43
1266 查看
--------------------------------------------------------------------------------------------------------------------------【Django使用数据库是自带ORM的】 1.你配置好了数据库 那就可以使用 自带ORM的不需要原生的操作。 2.Django 操作数据库简单 3.直接使用模型就操作数据库了 很暴力的--------------------------------------------------------------------------------------------------------------------------1.配置数据库信息 **注意Django版本差异setting.py里的DATABASES修改上述的配置 变成你的配置信息
DATABASES = {'default': {'ENGINE': 'django.db.backends.mysql', #以mysql为例子'NAME': 'django', #生成的数据库名字#'NAME' 你要操作的数据库名字 注意不要和数据库已有的重名 自己手动创建数据库django在mysql'USER':'cesto', #数据库账户'PASSWORD':'密码', #数据库密码'HOST':'localhost''PORT':'3306',}}2.【写第一个模型Model】1.在APP的models.py文件里2.引入头文件
from django.db import models3.创建自定义Model类基础Model类
class MyModel(models.Model):# 字符串CharField类型 title 长度100title = models.CharField(max_length = 100)# URL类型 urlurl = models.URLField()author = models.CharField(max_length = 100)age = models.IntegerField()3. 【模型同步数据库】 ***版本差异的区分 【操蛋 版本不一样 没法玩啊】shell 输入命令 >python manage.py -hType 'manage.py help <subcommand>' for help on a specific subcommand.Available subcommands:[新的版本][django] check compilemessages createcachetable dbshell diffsettings dumpdata flush inspectdb loaddata makemessages makemigrations migrate sendtestemail shell showmigrations sqlflush sqlmigrate sqlsequencereset squashmigrations startapp startproject test testserver[旧的版本 1.7.5][django] cleanup compilemessages createcachetable dbshell diffsettings dumpdata flush inspectdb loaddata makemessages reset runfcgi runserver shell sql sqlall sqlclear sqlcustom sqlflush sqlindexes sqlinitialdata sqlreset sqlsequencereset startapp startproject syncdb test testserver validate---------------------------------------------------------------------------------------------------------------------可以看到 命令差别很大的 注意区分版本和操作。---------------------------------------------------------------------------------------------------------------------【Django版本冲突 和 同步数据库】1. 验证模型是否有效,如果我没说错,如果你是旧版本 执行python manage.py validate [这是旧版本] 《显然0 error即OK如果你是新版本 : 执行python manage.py check [新版本] 《显示 System check identified no issues (0 silenced). 即OK2.生成sql语句 和 提交sql语句到数据库如果你是旧版本 执行python manage.py sqlall APP项目名字 《查看SQL 执行[b]python manage.pysyncdb 《提交SQL[/b]如果你是新版本 :【3个步骤】 1. python manage.py makemigrations 项目名字 #用来检测数据库变更和生成数据库迁移文件 2. python manage.py migrate #用来迁移数据库 3. python manage.py sqlmigrate 项目名字 0001 # 用来把数据库迁移文件转换成数据库语言 在命令行依次执行完这三个命令你就可以进行数据访问了。---------------------------------------------------------------------------------------------------------------------【延伸 如果修改Model必须再依次执行以上几个步骤。重新同步到数据库】---------------------------------------------------------------------------------------------------------------------4.【操作数据库 python manage.py shell】如果Model成功的创建到了数据库1.进入shellpython manage.py shell2.[操作数据库]导入你要操作的Model
from demo.models import *【 查询】
查询全部:MyModel.objects.all()返回一个list对象 []查询个别:MyModel.objects.all()[0:2] 前两个但是本质还是SQL查询了全部 你截取了前两个2个罢了。查询单个:MyModel.objects.get(条件) 返回一个对象[b]【 插入】[/b]
m = MyModel(title="Django",url="www.xx.com",author="谢杰",age=10)
m.save() #保存model对象
此时查询r = MyModel.objects.all()r[0].title #输出Django 对了条件查询:r = MyModel.objects.get(age=10)r.title #输出Django 对了【 更新】
1.查询单个:r = MyModel.objects.get(age=10)2.修改这个:r.title="更新"r.save() #保存这个新的对象更新[b]【排序 order_by】[/b]
# 按照age升序排序r = MyModel.objects.all().order_by("age")遍历查看for x in r:print(x.title)# 按照age将降序排序 加 - 即可r = MyModel.objects.all().order_by("-age")遍历查看for x in r:print(x.title)【我们也可以在Model内部设计排序】加入class Meta:ordering=['age']【删除】
1.查询单个:r = MyModel.objects.get(age=10)2.再删除这个对象r.delete()
相关文章推荐
- web框架开发-Django模型层(1)之ORM简介和单表操作
- django 模型model与数据库3——高级操作(外联,多对多,修改字段)
- Python django学习之:model (与数据库操作)
- Python开发【Django】:Model操作(一)
- Python开发【Django】:ModelForm操作
- Django--model模型绑定_数据库操作
- Python第十三天 django 1.6 导入模板 定义数据模型 访问数据库 GET和POST方法 SimpleCMDB项目 urllib模块 urllib2模块 httplib模块 django和web服务器整合 wsgi模块 gunicorn模块
- web框架开发-Django模型层(2)-多表操作
- django Model模型二及Model模型对数据库的操作
- Python开发【Django】:Model操作(二)
- python例子-Django之模型(Model_数据库)
- python下的web开发框架-Django,建立模型
- 每周一荐:Python Web开发框架Django
- python-django开发web框架的setting.py
- django 的数据库操作2009年06月26日 星期五 15:26Python代码
- 每周一荐:Python Web开发框架Django
- Python Web开发框架Django
- django--python之web开发框架搭建
- Python开发WebService:REST,web.py,eurasia,Django
- Eclipse基于python、Django做Web开发