Python基础之 Django模型

本章节主要是包括通过Python安装Mysql驱动(mysqlclient),通过Django创建app,更新数据库模型。

1.安装 mysql 驱动。如果你没安装 mysql 驱动,可以执行以下命令安装:

   pip install mysqlclient

 

2.通过Django创建项目。可以执行以下命令安装:

  python django-admin.py startproject testModel

 

3.进入创建项目,通过Django创建app。可以执行以下命令安装:

 python  django-admin.py startapp TesApp

 

4.数据库及模型相关配置。

(1)修改settings.py数据库及app名称配置。相关配置如下:

 

INSTALLED_APPS = [
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    'TesApp',
]

DATABASES = {
    'default': {
        #'ENGINE': 'django.db.backends.sqlite3',
        #'NAME': os.path.join(BASE_DIR, 'db.sqlite3'),
        'ENGINE': 'django.db.backends.mysql',  # 或者使用 mysql.connector.django
        'NAME': 'He',
        'USER': 'root',
        'PASSWORD': 'root',
        'HOST':'localhost',
        'PORT':'3306',
    }
}

 

(2)数据库更新及模型相关配置。

在刚才创建TesApp文件夹的模型文件models.py中修改代码,代码如下:

from django.db import models

# Create your models here.
class Test(models.Model):
    uname = models.CharField(max_length=20)
初始系统默认表及更新新创数据库模型,cmd命令如下:
python manage.py migrate   # 创建表结构
python manage.py makemigrations TesApp # 让 Django 知道我们在我们的模型有一些变更
python manage.py migrate TesApp   # 创建表结构

(3)入口文件创建相关配置。
在TestModel文件夹同级settings.py目录中创建home.py文件,代码如下:
#coding=utf-8

from django.http import HttpResponse
from TesApp.models import Test

#测试添加数据
def addData(request):
    test1 = Test(uname='tom')
    test1.save()
    return HttpResponse("数据添加成功!")
    
#测试删除数据
def delData(request):

    #删除表单数据方法1
    test1 = Test.objects.get(id=2)
    test1.delete()
    
    #删除表单数据方法2
    #Test.objects.filter(id=1).delete()
    
    #删除表中所有数据
    #Test.objects.all().delete()
    
    return HttpResponse("数据删除成功!")
    
#测试修改数据
def updateData(request):
   #修改数据方法1(修改数据可以使用 save() 或 update():)
    test1 = Test.objects.get(id=2)
    test1.uname="mike"
    test1.save() 
    
    #修改数据方法2
    #Test.objects.filter(id=1).update(uname='Google')
    
    #修改数据方法3
    #Test.objects.all().update(uname='Google')
    
    return HttpResponse("数据修改成功!")
    
#查询数据
def queryData(request):
    # 通过objects这个模型管理器的all()获得所有数据行,相当于SQL中的SELECT * FROM TABLE
    response1= Test.objects.all()
    showData(response1)
    
    # filter相当于SQL中的WHERE,可设置条件过滤结果,相当于SQL中的SELECT * FROM TABLE WHERE ID=1
    response2=Test.objects.filter(id=1) 
    #showData(response2)
    
    # 获取单个对象,相当于SQL中的SELECT * FROM TABLE WHERE ID=1
    response3 = Test.objects.get(id=2) 
    #showData(response3)
    
    #数据排序
    response4 = Test.objects.order_by("id")
    #showData(response4)
    
    #限制返回的数据 相当于 SQL 中的 OFFSET 0 LIMIT 2;
    response5 = Test.objects.order_by('uname')[0:2]
    #showData(response5)
    
    # 上面的方法可以连锁使用
    response6 = Test.objects.filter(uname="runoob").order_by("id")
    #showData(response6)
    
    result=""
    result2=""
    #查询列表
    for item in response2:
        result +="id:"+str(item.id)+",uname:"+item.uname+"\r\n"
    
    #查询单条数据
    result2="id:"+str(response3.id)+",uname:"+response3.uname+"\r\n"
    return HttpResponse("<p>" + result2 + "</p>")
 

在urls.py中配置home.py映射url地址,代码如下:

#coding=utf-8

from django.conf.urls import url
from django.contrib import admin
from . import home

urlpatterns = [
    url(r'^admin/', admin.site.urls),
    url(r'^addData$', home.addData),
    url(r'^delData$', home.delData),
    url(r'^updateData$', home.updateData),
    url(r'^queryData$', home.queryData),
]

(5)cmd启动项目,打开页面地址:

python manage.py runserver

在浏览器输入如下地址,就可看见:
http://127.0.0.1:8000/addData

posted on 2017-07-14 22:55  伈隨夢飛  阅读(234)  评论(0编辑  收藏  举报

导航