Django数据库的增删改查

Posted wangmo

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Django数据库的增删改查相关的知识,希望对你有一定的参考价值。

通过一个实例学习Django数据库的增删改查

 

Django
  - 路由系统 url.py
  - 视图函数 views.py
    - 数据库操作 models.py
    - 模板引擎渲染
      - HttpReponse(字符串)
      - render(request,\'/path/a.html\',{\'name\':\'root\'})

 

一、示例:用户基本CURD

1.数据库设计
  id hostname ip port status
2.功能的实现
  创建  project   (pycharm)

     django-admin startproject mysite
  创建  app    (pycharm)

     cd mysite
     python manage.py startapp app01
  配置模板路径   

     settings.py
     TEMPLATE
     DIRS: [os.path.join(BASE_DIR,\'templates\'),]
  配置静态文件

     settings.py
     STATICFILES_DIRS = (
     os.path.join(BASE_DIR,\'static\'),
     )

 

二、路由系统 urls.py
  a. /^servers$ -> servers
  b. url(r\'^edit_user_new-(?P<nnid>\\d+).html$\', views.edit_user_new),
  c. url(r\'^edit_user_new-(\\d+).html$\', views.edit_user_new,name=\'bbb\'),
    {% url "bbb" 1 %} ==> edit_user_new-1.html
  d. url(r\'^edit_user_new-(?P<nnid>\\d+).html$\', views.edit_user_new, name=\'nnn\'),
    {% url "nnn" nnid=1 %} ==> edit_user_new-1.html
  e.
    主urls.py
      url(r\'^cmdb/\', include(\'app01.urls\')),
      url(r\'^config/\', include(\'app02.urls\')),
    app01 urls.py
      ...
    app02 urls.py
      ...

 


三、视图函数 views.py
  获取请求信息:
    request.POST {\'username\':\'root\'..}
    request.GET
    request.FILES
    request.method
    request.body = username=root;age=18;gender=male

  响应结果:
    return HttpReponse(..)
    return render(request,\'path/a.html\',{})
    return redirect(\'http://www.baidu.com\')

 

下面为views返回的三种方法,和前端使用模板的方法,用{{}}调用

 

当模板中使用for循环和取字典的值,使用点

 

 

四、Django数据库操作

  1. 类 --> 数据库的表
      字段 --> 列
      对象 --> 一行数据

   class UserInfo(models.Model):
      nid = models.AutoField(primary_key=True)
      username = models.CharField(max_length=32)
      pwd = models.CharField(max_length=64)
      age = models.IntegerField()

2. 根据app的models.py生成数据库表
   python manage.py makemigrations
   python manage.py migrate

   PS: settings注册app名字
      注意:
    mysql
      - 手动创建库名
      - settings.py 中配置
        DATABASES = {
          \'default\': {
          \'ENGINE\': \'django.db.backends.mysql\',
          \'NAME\':\'dbname\',
          \'USER\': \'root\',
          \'PASSWORD\': \'xxx\',
          \'HOST\': \'\',
          \'PORT\': \'\',
          }
        }
      - Django默认链接MySQL:
        - MySqlDB模块,python3里面没有
        - pymysql模块,python3中模块
        在配置目录的init.py中:
          import pymysql
          pymysql.install_as_MySQLdb()

 

调用数据库modules里的数据

 



3. 数据库基本操作
a. 查
models.tb.objects.all()
models.tb.objects.filter(nid=1)
models.tb.objects.filter(nid=1).first()

b. 增
models.tb.objects.create(...)

obj = models.tb(...)
obj.save()
c. 删
models.tb.objects.all().delete()
models.tb.objects.filter(nid=1).delete()
d. 改
models.tb.objects.all().update(...)
models.tb.objects.filter(nid=1).update(...)

设计数据库表

 

以上是关于Django数据库的增删改查的主要内容,如果未能解决你的问题,请参考以下文章

MySQL-增删改查简易操作

MySQL-增删改查简易操作

MySQL基本操作--库表增删改查

Django数据库的增删改查

Django 多对多关系的增删改查

库表曾删改查和存储引擎