zoukankan      html  css  js  c++  java
  • django+mysql简单总结

    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(i.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]  #前5条记录
    book_info.object.order_by(bookname)[2:5]  #排序后的第3、4、5条记录
    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的区别
  • 相关阅读:
    [ APIO 2015 ] 雅加达的摩天楼
    「POI2011 R1」Conspiracy
    「COCI2016/2017 Contest #2」Bruza
    「THUWC 2017」随机二分图
    「HAOI2015」按位或
    Topcoder Srm 726 Div1 Hard
    「LOJ6482」LJJ爱数数
    「2017 山东一轮集训 Day4」基因
    「Codechef April Lunchtime 2015」Palindromeness
    「UOJ207」共价大爷游长沙
  • 原文地址:https://www.cnblogs.com/stuqx/p/7127980.html
Copyright © 2011-2022 走看看