Django项目详解3——数据库
2018-01-09 16:16
197 查看
这个项目就先用sqlite3来实现
首先,衔接上一篇的内容,把cmdb注册到数据库应用列表中
还有一项很重要的,数据库配置,外置数据库的会有专门的一篇来介绍,本系列主要以完成一个完整的web为主,所以先用自带的sqlite
那么,在setting中,还有一个数据库常量,默认就是sqlite,什么都不用改
然后就可以写Model了,MTV中的M,app中的models.
然后都准备好了,就准备迁移数据,进入到项目目录下
根据model创建表,进行迁移准备
执行迁移命令
至此,数据库操作完成,但是并没有彻底完成,还有最后一步需要修改views,修改views,那么之前的模拟数据自然就不需要了
现在启动项目后,表是空的,添加几条数据,再关闭服务后,再次开启,由于数据存储在数据库,所以重启后,数据不会丢失了,一个简单的小demo就实现了
其实,一开始是想做的好一点的,后来因为时间原因,没能写一个好一点的项目,不过目前已经可以实现一些基本的web操作了
完结源码
https://github.com/seeways/mysite
如果你要用MySQL,可以参考一下这篇:
Django项目详解——MySQL配置及应用
首先,衔接上一篇的内容,把cmdb注册到数据库应用列表中
# Application definition INSTALLED_APPS = [ 'django.contrib.admin', 'django.contrib.auth', 'django.contrib.contenttypes', 'django.contrib.sessions', 'django.contrib.messages', 'django.contrib.staticfiles', # 在这里加入应用 "cmdb", ]
还有一项很重要的,数据库配置,外置数据库的会有专门的一篇来介绍,本系列主要以完成一个完整的web为主,所以先用自带的sqlite
那么,在setting中,还有一个数据库常量,默认就是sqlite,什么都不用改
# Database # https://docs.djangoproject.com/en/1.11/ref/settings/#databases DATABASES = { 'default': { 'ENGINE': 'django.db.backends.sqlite3', 'NAME': os.path.join(BASE_DIR, 'db.sqlite3'), } }
然后就可以写Model了,MTV中的M,app中的models.
from django.db import models # Create your models here. class UserInfo(models.Model): # 需要继承Model类 # 创建两个char类型字段,最大长度为32 user = models.CharField(max_length=32) pwd = models.CharField(max_length=32)
然后都准备好了,就准备迁移数据,进入到项目目录下
根据model创建表,进行迁移准备
执行 python manage.py makemigrations Migrations for 'cmdb': cmdb\migrations\0001_initial.py - Create model UserInfo
执行迁移命令
执行 python manage.py migrate Operations to perform: Apply all migrations: admin, auth, cmdb, contenttypes, sessions Running migrations: Applying contenttypes.0001_initial... OK Applying auth.0001_initial... OK Applying admin.0001_initial... OK Applying admin.0002_logentry_remove_auto_add... OK Applying contenttypes.0002_remove_content_type_name... OK Applying auth.0002_alter_permission_name_max_length... OK Applying auth.0003_alter_user_email_max_length... OK Applying auth.0004_alter_user_username_opts... OK Applying auth.0005_alter_user_last_login_null... OK Applying auth.0006_require_contenttypes_0002... OK Applying auth.0007_alter_validators_add_error_messages... OK Applying auth.0008_alter_user_username_max_length... OK Applying cmdb.0001_initial... OK Applying sessions.0001_initial... OK
至此,数据库操作完成,但是并没有彻底完成,还有最后一步需要修改views,修改views,那么之前的模拟数据自然就不需要了
from django.shortcuts import render from django.shortcuts import HttpResponse from cmdb import models # Create your views here. def welcome(request): # request 封装了用户请求的所有内容 return HttpResponse("my first django today") def main(request): return render(request, "main.html", ) def login(request): if request.method == "POST": username = request.POST.get("username", None) password = request.POST.get("password", None) # 添加数据到数据库 models.UserInfo.objects.create(user=username, pwd=password) # 从数据库读取数据 user_list = models.UserInfo.objects.all() return render(request, "login.html", {"data": user_list})
现在启动项目后,表是空的,添加几条数据,再关闭服务后,再次开启,由于数据存储在数据库,所以重启后,数据不会丢失了,一个简单的小demo就实现了
其实,一开始是想做的好一点的,后来因为时间原因,没能写一个好一点的项目,不过目前已经可以实现一些基本的web操作了
完结源码
https://github.com/seeways/mysite
如果你要用MySQL,可以参考一下这篇:
Django项目详解——MySQL配置及应用
相关文章推荐
- Django 基础(一),项目创建、URL路由、数据库操作、模版
- HubbleDotNet开源全文搜索数据库项目--技术详解[转]
- Django项目实践3 - Django模型(view-数据库)
- openstack ice自定义调度算法项目详解(horizon、novaclient、api、scheduler、db、自定义数据库)
- Python第十三天 django 1.6 导入模板 定义数据模型 访问数据库 GET和POST方法 SimpleCMDB项目 urllib模块 urllib2模块 httplib模块 django和web服务器整合 wsgi模块 gunicorn模块
- 获取Django项目的全部url方法详解
- openstack ice自定义调度算法项目详解(horizon、novaclient、api、scheduler、db、自定义数据库)
- django项目实战(2)-数据库配置
- django 项目中使用多数据库 multiple databases - 真实的活
- django项目数据库迁移过程记录及注意事项
- Django来敲门~第一部分【5.1.项目配置settings.py详解】
- Django 基础(一),项目创建、URL路由、数据库操作、模版
- Django项目-数据库,模型创建
- Django基于ORM操作数据库的方法详解
- Django项目实践3 - Django模型(字段、数据库操作及模型继承)
- Django项目实践3 - Django模型(view-数据库)
- django之创建第8-2个项目-数据库数据提取之过滤操作符相关
- Django项目中的Admin应用详解
- django项目详解
- HubbleDotNet开源全文搜索数据库项目--技术详解