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数据库的增删改查的主要内容,如果未能解决你的问题,请参考以下文章