yangzhizong

第一步:要先创建数据库(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 (每次都会有记录,不能删除)

取出数据库中每条所有的用户的信息,相当于一个对象 列表对象里  放了一堆对象

 

 

 第八步:查询表时也可以一对一,多对多查询(待完善。。)

 

分类:

技术点:

相关文章: