您的位置:首页 > 编程语言 > Python开发

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 models
3.创建自定义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()
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: