Django创建项目模块+创建映射类+视图
确保你的项目已经正确链接数据库
链接数据库的工具有很多,数据库的种类也有很多,我使用的数据库是mysql,工具是pmysql,使用pymysql链接数据库,在settings文件中这么设置:
DATABASES = {
# 'default': {
# 'ENGINE': 'django.db.backends.sqlite3',
# 'NAME': BASE_DIR / 'db.sqlite3',
# }
#默认链接的数据库
'default': {
#数据库驱动(用于程序操作数据库的程序)建立管道
'ENGINE': 'django.db.backends.mysql',
'NAME': 'trip_django',
'USER': 'root',
'PASSWORD': 'mima',#你的密码
'HOST': '127.0.0.1',#数据库的ip地址
'PORT': '3306'#数据库端口号
}
}
一、创建项目模块
在项目路径下打开命令提示符窗口
输入:
python manage.py startapp system
创建了system模块。
在settings文件中引入该模块:
模块名.apps.首字母大写的模块名Config
INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'system.apps.SystemConfig',#刚刚创建的system模块
]
二、创建映射类
在模块下的models文件下创建映射类
案例:
from django.db import models
#数据库中表的映射类,根据该文件构建及操作数据库
class Slider(models.Model):
name=models.CharField('名称',max_length=32)
class Meta:
db_table='system_slider'
ordering=['-reorder']#默认排序规则
在案例slider类中有一个name属性,也就是对应数据库中有一个slider表和一个name列,如果想创建多个列,语法与name一样,但注意:name是char类型。若想创建整型需要使用:models.SmallIntegerField()还有其他类型,括号中是用来定义列的属性的,例如上述案例定义max_length是定义最大长度。
还有更多列类型和属性请参考下一篇文章。
三、创建视图
from django.shortcuts import render
from django import http
from django.http import HttpResponse
from system.models import Slider
# Create your views here.
#创建视图函数用于返回轮播数据列表
def slider_list(request):
#规范相应数据结构
data={
'meta':{
},
'object':[]
}
#过滤数据源,is_valid为真则取出
queryset=Slider.objects.filter(is_valid=True)
#对过滤后的数据进行遍历
for item in queryset:
data['object'].append({
'id':item.id,
'img_url':item.img.url,
'target_url':item.target_url,
'name':item.name
})
return http.JsonResponse(data)
上述代码实现了将is_valid列有值的数据返回给queryset,然后将queryset的id、img_url、target_url、name值返回给data。然后 返回给浏览器。
四、创建数据模型
当模块和映射类都创建好后,可以开始创建数据模型:
检查
python manage.py check
创建模型
python manage.py makemigrations
生成数据结构
python manage.py migrate
这样就可以将映射类创建为表。