Django創建並連接數據庫(實現增刪改查)--ORM框架雛形


第一步:要先創建數據庫(orm是不能創建數據庫的)

 

第二步:settings里面指定連接到哪個數據庫

 

DATABASES = {
    #默認使用的是sqlite3數據庫
    'default': {
        'ENGINE': 'django.db.backends.sqlite3',
        'NAME': os.path.join(BASE_DIR, 'db.sqlite3'),
    }
    #指定使用Mysql數據庫
    # 'default':{
    #     'ENGINE':'django.db.backends.mysql',
    #     'HOST':'127.0.0.1',
    #     'PORT':3306,
    #     'USER':'root',
    #     'PASSWORD':'root',
    #     'NAME':'userinfo',   #指定到那個數據庫(數據庫要事先建好)
    #
    # }
}

 

上面的NAME就是指定的數據庫的名字

 

第三步:在app文件夾下面的init.py里面配置

#因為操作msq數據庫默認是用Mysqldb,現在就是手動指定用pymsql來操作數據庫:
import pymysql
pymysql.install_as_MySQLdb()

 

第四步:在models里定義類,類必須繼承 models.Model,寫屬性,對應着數據庫的字段

#指定數據庫表都有哪些字段及字段的屬性
from
django.db import models # Create your models here. class UserInfo(models.Model): nid = models.AutoField(primary_key=True) #是否設置為主鍵 name = models.CharField(max_length=32) # password = models.CharField(max_length=32,default='nicai') #可以指定默認值 password = models.CharField(max_length=32,) gender = models.IntegerField() birthday = models.DateField() def __str__(self): return self.name

 

第五步:遷移數據庫makemigrations是生成一個文件,migrate是將更改提交到數據量)

  方式一:

  執行 python manage.py makemigrations(相當於做一個記錄)

  

  

 

  執行 pyhton manage.py migrate (把前面創建的表的字段執行到數據庫中)

  

   

  對應settings里面添加的app自動會有相對應的數據表(創建好的表的名字=aap名字+models.py里面定義的class類的名字)

  

  

 

  方式一:通過pycharm軟件點擊

    

 

第六步:views.py拿網頁數據並將錄入到數據庫指定表的字段里面

 

from django.shortcuts import render,HttpResponse

# Create your views here.

from app01.models import *

#通過網頁注冊,拿到用戶的數據信息,完成注冊
def register(request):
    if request.method == "POST":
        name=request.POST.get('name',None)
        password=request.POST.get('password',None)
        gender=request.POST.get('gender',None)
        birthday=request.POST.get('birthday',None)

        #實例化models.py里面的UserInfo類,傳入上面從Web提交過來的數據,將數據寫入數據庫
        user=UserInfo.objects.create(birthday=birthday,name=name,password=password,gender=gender)
        print(user) #UserInfo object 是個對象
        print(user.__dict__) #{'_state': <django.db.models.base.ModelState object at 0x05482290>, 'nid': 4, 'name': 'b', 'password': 'b', 'gender': '5', 'birthday': '1992-03-28'}

        return HttpResponse('注冊成功')

    return render(request,'register.html')

#查看表的內容
def user_list(request):
    user_list=UserInfo.objects.all()
    print(user_list)          #<QuerySet [<UserInfo: yangzhizong>, <UserInfo: 楊智宗>]>  QuerySet:即結果集
    print(type(user_list))    #<class 'django.db.models.query.QuerySet'>
    print(user_list[1].name)  #yangzhizong  可以依次取出輸入的name值

    return render(request,'user_list.html',{'user_list':user_list})

 

第七步:更新表的時候就要執行下這2條命令:makemigrations 和 make (每次都會有記錄,不能刪除)

取出數據庫中每條所有的用戶的信息,相當於一個對象 列表對象里  放了一堆對象

 

 

 第八步:查詢表時也可以一對一,多對多查詢(待完善。。)

 


免責聲明!

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



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