一、使用环境

python2.7,django>1.7

二、数据库进行配置

在setting文件中进行修改

1、找到DATABASES

DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql', # Add 'postgresql_psycopg2', 'mysql', 'sqlite3' or 'oracle'.
'NAME': 'studentInfo', # Or path to database file if using sqlite3.
'USER': 'root', # Not used with sqlite3.
'PASSWORD': '123456', # Not used with sqlite3.
'HOST': '', # Set to empty string for localhost. Not used with sqlite3.
'PORT': '',
}
}

2、找到INSTALLED_APPS,添加创建的app名。

INSTALLED_APPS = (
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'article',
)

3、创建数据表

django框架可以创建数据表,但是不可以创建数据库。所以,在创建数据表之前需要手动创建数据库。

常用命令:

  • python manage.py syncdb。将创建的数据表导入到数据库中,如果已经创建好,修改过后,不会更新。需要使用另外的命令。
  • python manage.py makemigrations.
  • python manage.py migrate
  • python manage.py validate 检查有效性,在执行世纪导入数据库之前,检查语句是否有问题。

在需要使用数据库的app包里编辑models.py文件,生成基于models.Model的类,就产生一个数据表。例子如下:

 class StudentInfo(models.Model):

     name = models.CharField(max_length = ,default="");
studentID = models.CharField(max_length=,default="");
sex = models.CharField(max_length = ,default="");
age = models.IntegerField(default=);
address = models.TextField(default="")

4、数据库表的增删改查

(1)

c = User(name = name);
c.save();

(2)

User.objects.create(name=name)

使用对象的delete方法

 def Delete(request,id):
objs = User.objects.filter(id=id);
if objs:
User.objects.get(id=id).delete();
return HttpResponse(objs[].name + " delete success")
else:
return HttpResponse("no data match the query");

使用update方法

def Update(request,id,name):
objs = User.objects.filter(id=id);
if objs:
obj = User.objects.get(id=id)
obj.name = name;
obj.save();
return HttpResponse("%s update success"%id);
else:
return HttpResponse("no data match the query");

使用get或者filter方法,其中filter()方法可以传一个或多个参数。也可以模糊查询,使用__contains,在列明之后添加__contains相当于SQL中的LIKE语句;还有其他一些魔法语句

比如:__icontains对大小写不敏感, __startswith and __endswith。

filter方法返回一个QuerySet类似于列表,get返回一个对象,如果没有或者有多个则会报错。

使用get方法,如果没有对相匹配,会产生一个 DoesNotExist异常,这个异常是models类的一个属性,因此可以通过捕获这些异常来处理没有匹配数据的情况。

try:
p = Publisher.objects.get(name='Apress')
except Publisher.DoesNotExist:
print "Apress isn't in the database yet."
else:
print "Apress is in the database."
def GetByid(request,id):
objs = User.objects.filter(id=id);
if objs:
obj = User.objects.get(id=id);
return HttpResponse("name is %s"%obj.name);
else:
return HttpResponse("not find id=%s"%id);
 def getByName(request,name):
objs = User.objects.filter(name__contains=name);
if objs:
name = [];
for each in objs:
name.append(each.name);
return HttpResponse(','.join(name));
else:
return HttpResponse("no data contain %s"%name);

5 http请求在web应用程序中的响应流程

  • web服务器接到一个http请求
  • django将web服务器传过来的请求转换成一个请求对象
  • django在urlconf里查找对应视图函数
  • 调用这个视图函数,参数是请求对象、捕捉到的url参数
  • 视图创建一个响应对象并返回
  • django将这个响应对象转换成web服务器可以理解的格式
  • web服务器将响应发送到客户端

django中数据库的相关操作的更多相关文章

  1. Django中的ORM相关操作:F查询,Q查询,事物,ORM执行原生SQL

    一    F查询与Q查询: 1 . F查询: 在上面所有的例子中,我们构造的过滤器都只是将字段值与某个常量做比较.如果我们要对两个字段的值做比较,那该怎么做呢? Django 提供 F() 来做这样的 ...

  2. Django中的ORM进阶操作

    Django中的ORM进阶操作 Django中是通过ORM来操作数据库的,通过ORM可以很easy的实现与数据库的交互.但是仍然有几种操作是非常绕也特别容易混淆的.于是,针对这一块,来一个分类总结吧. ...

  3. PHP对MySQL数据库的相关操作

    一.Apache服务器的安装 <1>安装版(计算机相关专业所用软件---百度云链接下载)-直接install<2>非安装版(https://www.apachehaus.com ...

  4. python操作mysql数据库的相关操作实例

    python操作mysql数据库的相关操作实例 # -*- coding: utf-8 -*- #python operate mysql database import MySQLdb #数据库名称 ...

  5. MySQL数据库---记录相关操作

    序 表中记录的相关操作一共四种:插入,更新,删除.查询.其中使用最多,也是最难的就是查询. 记录的插入 1. 插入完整数据(顺序插入) 语法一: INSERT INTO 表名(字段1,字段2,字段3… ...

  6. Django中数据库操作相关的错误

    问题:字段修改属性发生错误 1> >python manage.py makemigrations You are trying to add a non-nullable field ' ...

  7. django中数据库操作——in操作符

    django一对多关系中,为了实现按照一端查询多端,之前都是用extra操作符,经过查看官方文档还有in这个操作符,用这个实现更简单.直接上代码: 根据查询条件模糊查询所有符合条件的机架列表,然后根据 ...

  8. django中数据库的配置及相关增删改查

    ORM ORM是什么?:(在django中,根据代码中的类自动生成数据库的表也叫--code first) ORM:Object Relational Mapping(关系对象映射) 类名对应---- ...

  9. django中数据库操作有关部分

    # >>>>>>>>>>>>>>>>>>>>>>>>&g ...

随机推荐

  1. 基于Java spring框架的微信企业号开发中关于js-sdk的配置

    在调用js-sdk的第一步,我们需要引入js-sdk的js链接,然后执行wx.config,官方示例如下所示: wx.config({ debug: true, // 开启调试模式,调用的所有api的 ...

  2. WordPress 后台评论如何自定义搜索条件

    大家都知道WordPress 作为一个非常成熟的博客系统,功能可以说是非常强大,几乎整个网站都可以进行定制开发,已经不算是一个博客系统了而应该是一个成熟的开发框架 最近就用WP给客户开发了一个网站,但 ...

  3. Cognos定时刷新RS解决方案

    为了了解医院运营情况,在门诊和挂号业务上用户提出了一个接近实时监测的需求,每隔一段时间需要知道当天的挂号量,等待人数,出诊医生等指标来了解医院当天主要科室的就诊情况,以及医疗资源是否分配得当 一:方案 ...

  4. 2013级C++第14周(春)项目——多态性、虚函数和抽象类

    课程首页在:http://blog.csdn.net/sxhelijian/article/details/11890759,内有完整教学方案及资源链接 第一部分 阅读程序1.阅读.改动和执行关于交通 ...

  5. Memcached和Memcache 配置教程windows X64

    一.Memcached和Memcache的区别: 网上关于Memcached和Memcache的区别的理解众说纷纭,我个人的理解是: Memcached是一个内存缓存系统,而Memcache是php的 ...

  6. 宏定义偷懒型set,get

    之前看到有这么一个写法 #define DEF_SET_GET(varType,varName,funName) \ private : varType varName; \ public : voi ...

  7. 45个很实用的 Oracle 查询语句小结

     这里我们介绍的是 40+ 个很实用的 Oracle 查询语句,主要涵盖了日期操作,获取server信息.获取运行状态.计算数据库大小等等方面的查询. 这些是全部 Oracle 开发人员都必备的技 ...

  8. 微信小程序 - 获取所在位置(省、市、区)

    实现步骤 1. 获取当前经纬度 2. 调用腾讯(百度.高德)地图对应的请求地址,一般都会有独一的key, 譬如 腾讯地图调用地址: https://apis.map.qq.com/ws/geocode ...

  9. TP5报错variable type error: array

      variable type error: array 当你在tp5框架中写方法时返回一个数组时,tp5会报错:variable type error: array 这是因为tp5不支持返回数组. ...

  10. 远程binlog

    binlog介绍 binlog,即二进制日志,它记录了数据库上的所有改变. 改变数据库的SQL语句执行结束时,将在binlog的末尾写入一条记录,同时通知语句解析器,语句执行完毕. binlog格式 ...