django操作mysql


 

連接mysql

1、安裝pymysql

操作指令 : pymsql: pip install pymysql 

2、導入庫

在項目目錄下的__init__.py文件中導入pymysql模塊

加入以下兩行代碼:

import  pymysql

pymysql.install_as_MySQLdb()

3、在setting中的databases中配置mysql的連接

 'ENGINE': 'django.db.backends.mysql',       # 設置驅動

 'NAME':庫名,                                                # 設置數據庫名

'USER':'root',                                                 # 設置用戶名

‘PASSWORD':密碼,                                       # 設置密碼 

'HOST':主機地址,                                          # 設置主機地址

'PORT':3306,                                                 # 設置端口號

4、執行遷移

python manage.py makemigrations

python manage.py  migrate

5、連接mysql數據庫

點擊database --- + -----data source ----數據庫類型(如:mysql) ----- 設置 賬號,密碼,主機,(注意: 如果對mysql設置遠程連接,

要使用遠程連接的賬號密碼) ----test connect ---- ok 即可 

操作mysql

1、創建一個表

需要在model模塊中創建一個類,該類繼承models.Model

例:

  1.  
    class Person(models.Model):
  2.  
    p_name = models.CharField(max_length= 20, null=False, unique=True)
  3.  
    p_age = models.IntegerField(default= 10)
  4.  
    p_sex = models.BooleanField(default= True)

表名默認為 應用名_類名

注:在右側detabase處可以看到自己創建的表

注:在創建的類中添加

class Meta:     
        db_table = "表名"  修改表名

可以修改創建的表的名字

例:

  1.  
    class Person(models.Model):
  2.  
    p_name = models.CharField(max_length= 20, null=False, unique=True)
  3.  
    p_age = models.IntegerField(default= 10)
  4.  
    p_sex = models.BooleanField(default= True)
  5.  
     
  6.  
    class Meta:
  7.  
    db_table = "Person"

修改完成后,執行遷移

若要修改表的字段名,則更改定義的類中的屬性之后遷移即可

2、增加一個數據

步驟:     

①.創建一個對象
②.設置屬性
③.保存數據
④.對象名.save()

例:

  1.  
    from django.shortcuts import render
  2.  
    from day02.models import Person
  3.  
    import random
  4.  
    # Create your views here.
  5.  
     
  6.  
    def insertPerson(request):
  7.  
    # 創建一個對象
  8.  
    person = Person()
  9.  
     
  10.  
    # 設置屬性
  11.  
    person.p_name = "王" + str(random.randint(1, 100))
  12.  
    person.p_age = random.randint( 1, 100)
  13.  
    person.p_sex = random.randint( 0, 1)
  14.  
     
  15.  
    # 保存數據
  16.  
    person.save()

設置url

在項目的urls中添加 url("應用名",include("應用名.urls"))

注:需import 應用名

  1.  
    from django.conf.urls import url, include
  2.  
    from django.contrib import admin
  3.  
    import day02
  4.  
     
  5.  
    urlpatterns = [
  6.  
    url( r'^admin/', admin.site.urls),
  7.  
    url( r'^day02/', include(day02.urls)),
  8.  
    ]

注:須在應用的目錄中創建一個urls.py文件,可以將項目中的urls中的內容復制過去

  1.  
    from django.conf.urls import url
  2.  
    from django.contrib import admin
  3.  
     
  4.  
     
  5.  
    urlpatterns = [
  6.  
    url( r'^admin/', admin.site.urls),
  7.  
     
  8.  
    ]

在應用中的urls中添加路徑

  1.  
    from django.conf.urls import url
  2.  
    from django.contrib import admin
  3.  
    from day02 import views
  4.  
     
  5.  
    urlpatterns = [
  6.  
    url( r'^admin/', admin.site.urls),
  7.  
    url( r'insertPerson', views.insertPerson),
  8.  
     
  9.  
    ]

激活服務器,在瀏覽器中輸入地址即可成功添加數據

查看插入的表

3、刪除一個數據

用變量獲取匹配到的數據

格式:變量.delete()      # 刪除數據

  1.  
    def delPerson(request):
  2.  
    person = Person.objects.filter(p_name= "王66").first() # 用變量person接收獲取到的對象
  3.  
    person.delete()
  4.  
    return HttpResponse("刪除成功")

在應用的urls中添加路徑

    url(r'delPerson',views.delPerson) 

激活服務器,並操作,

成功刪除

4、修改數據

格式:對象名.屬性名 = 值
           對象名.save()

例:首先插入一條數據

修改數據的屬性值

  1.  
    def updatePerson(request):
  2.  
    person = Person.objects.filter(p_name= "王30").first()
  3.  
    person.p_name = "王小明"
  4.  
    person.p_age = 18
  5.  
    person.p_sex = 0
  6.  
    person.save()
  7.  
    return HttpResponse("修改成功")

在urls中添加路徑

    url(r'updatePerson', views.updatePerson),

運行服務器

修改成功

5、查詢數據

格式: 類名.objects.方法

例:多插入幾條數據

在應用的views中添加代碼

  1.  
    def queryPerson(request):
  2.  
    persons = Person.objects.all()
  3.  
    return render(request, "Persons.html", context={"persons":persons})

在templates中創建Persons.html文件

  1.  
    <!DOCTYPE html>
  2.  
    <html lang="en">
  3.  
    <head>
  4.  
    <meta charset="UTF-8">
  5.  
    <title>Title</title>
  6.  
    </head>
  7.  
    <body>
  8.  
     
  9.  
    <ul>
  10.  
    {% for person in persons %}
  11.  
    <li>name:{{ person.p_name }}  age:{{ person.p_age }}</li>
  12.  
    {% endfor %}
  13.  
     
  14.  
    </ul>
  15.  
     
  16.  
    </body>
  17.  
    </html>

在urls中添加路徑

啟動服務器

成功查詢表格中的數據

注:這里只介紹了查詢所有數據的方法


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM