码迷,mamicode.com
首页 > 数据库 > 详细

django+mysql简单总结

时间:2017-07-06 20:45:02      阅读:208      评论:0      收藏:0      [点我收藏+]

标签:order   book   数据库表   下划线   name   clu   字段   print   日期   

1.工程下建立APP(以WIN10+PYTHON3.6为例)

C:\Users\WYS>django-admin startproject myweb  #建立项目
C:\Users\WYS>cd myweb
C:\Users\WYS\myweb>django-admin startapp myapp #建立项目下属APP

2.APP下的models.py文件中加入表结构(django中之所以把表结构在自身文件中定义,是为了在其他文件中可直接引用表结构进行数据库操作,不用频繁刷新数据表获取表结构)

from django.db import models

# Create your models here.

class book_info(models.Model):
    fromuser = models.CharField(max_length=30, default=WYS)
    fromsite = models.CharField(max_length=50)
    bookname = models.CharField(max_length=50)
    #updatetime = models.DateTimeField()
    #lastchapter = models.CharField(max_length=100)

class site_info(models.Model):
    sitename = models.CharField(max_length=50)
    bookname = models.CharField(max_length=50)
    url = models.CharField(max_length=200)
    updatetime = models.DateTimeField()
    lastchapter = models.CharField(max_length=100)

3.在myweb/myweb/settings.py中加入创建的APP和MYSQL连接信息

INSTALLED_APPS = (
    django.contrib.admin,
    django.contrib.auth,
    django.contrib.contenttypes,
    django.contrib.sessions,
    django.contrib.messages,
    django.contrib.staticfiles,
    myapp,
)
DATABASES = {
    default: {
        ENGINE: django.db.backends.mysql,
        NAME: test,
        USER: test,
        PASSWORD: test,
        HOST: localhost,
        PORT: 3306,
    }
}

4.将models.py中的数据库表结构同步到MYSQL中

C:\Users\WYS\myweb>python manage.py migrate #创建表结构
C:\Users\WYS\myweb>python manage.py makemigrations myapp #告诉django,myapp中的表结构有更新
C:\Users\WYS\myweb>python manage.py migrate myapp  #执行myapp中的表结构到mysql中

数据库中的表名为myapp_book_info,myapp_site_info,但django代码中调用时的表名为models.py中定义的表名book_info,site_info

5.数据表操作-增

from myapp.models import book_info
test1 = book_info(fromuser=testuser,fromsite=testsite,bookname=testbookname)
test1.save()

 

book_info.objects.create(fromuser=testuser,fromsite=testsite,bookname=testbookname)

6.数据库操作-删

test1 = book_info.objects.get(bookname=testbookname)
test1.delete()
book_info.objects.filter(bookname=testbookname).delete()
book_info.objects.all().delete()

 

7.数据库操作-改

test1 = book_info.objects.get(bookname=testbookname)
test1.bookname = book1
test1.fromuser = user1
test1.save
book_info.objects.filter(bookname=testbookname).update(fromuser=user1)
book_info.objects.all().update(fromuser=user1)

 

8.数据库操作-查

list = book_info.objects.all()
for i in list:
    print(list.book_name)
list = book_info.objects.filter(bookname=testbookname, fromuser=testuser)  #类似于SQL中的WHERE
list = book_info.objects.filter( fromuser__contains=testuser)  #注意中间是双下划线,类似于SQL中的where fromuser like "%testuser%" 
#此外还有icontains(大小写无关的like),startswith和endswith, 还有range(SQL BETWEEN查询)
list = book_info.objects.get(bookname=testbookname)  #返回单条记录,不需要for直接list.bookname使用
list = book_info.objects.filter().exclude().filter() #可无限嵌套
book_info.object.all()[:5]  #前6条记录
book_info.object.order_by(bookname)[2:5]  #排序后的第3到6条记录
book_info.object.order_by(bookname)[0]  #排序后的第1条记录
book_info.object.order_by(bookname)[0:1].get() #排序后的第1条记录
book_info.object.all()[:10:2]  #从第1条记录到第11条记录步长为2的数据集
__exact 精确等于 like ‘aaa’ 
__iexact 精确等于 忽略大小写 ilike ‘aaa’ 
__contains 包含 like ‘%aaa%__icontains 包含 忽略大小写 ilike ‘%aaa%’,但是对于sqlite来说,contains的作用效果等同于icontains。 
__gt 大于 
__gte 大于等于 
__lt 小于 
__lte 小于等于 
__in 存在于一个list范围内 
__startswith 以…开头 
__istartswith 以…开头 忽略大小写 
__endswith 以…结尾 
__iendswith 以…结尾,忽略大小写 
__range 在…范围内 
__year 日期字段的年份 
__month 日期字段的月份 
__day 日期字段的日 
__isnull=True/False 
__isnull=True 与 __exact=None的区别

 

django+mysql简单总结

标签:order   book   数据库表   下划线   name   clu   字段   print   日期   

原文地址:http://www.cnblogs.com/stuqx/p/7127980.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!