django+mysql簡單總結

來源:互聯網
上載者:User

標籤:order   book   資料庫表   底線   name   clu   欄位   print   日期   

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

C:\Users\WYS>django-admin startproject myweb  #建立項目C:\Users\WYS>cd mywebC:\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_infotest1 = 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簡單總結

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.