django连接数据库获取数据
小神龙哈哈哈 人气:01、创建项目
执行代码
django-admin startproject myweb
2、创建应用
python manage.py startapp myapp
3、运行项目
python manage.py runserver
如果没有加端口号就是默认8080,可以自己加端口号,防止与其它项目的端口号重复导致不能运行成功
python manage.py runserver 0.0.0.0:8080
端口号可以随意取,只要不重复就行
4、连接数据库
DATABASES = { 'default': { 'ENGINE': 'django.db.backends.mysql', 'NAME': 'mydemo', 'USER': 'root', 'PASSWORD': '', 'HOST': 'localhost', 'PORT': '3306', } }
如果没有安装mysqlclient模块执行以下代码进行安装
pip install mysqlclient
然后在目录中创建模型
```python from django.db import models # Create your models here. class Stu(models.Model): '''自定义Stu表对应的Model类''' #定义属性:默认主键自增id字段可不写 id = models.AutoField(primary_key=True) name = models.CharField(max_length=16) age = models.SmallIntegerField() sex = models.CharField(max_length=1) classid=models.CharField(max_length=8) # 定义默认输出格式 def __str__(self): return "%d:%s:%d:%s:%s"%(self.id,self.name,self.age,self.sex,self.classid) # 自定义对应的表名,默认表名:myapp_stu class Meta: db_table="stu"
激活模型——把新增的应用添加到模型中。
编辑myweb/settings.py文件,并将该虚线路径添加到该INSTALLED_APPS设置。 INSTALLED_APPS = [ 'django.contrib.admin' , 'django.contrib.auth' , 'django.contrib.contenttypes' , 'django.contrib.sessions' , 'django.contrib.messages' , 'django.contrib.staticfiles' , 'myapp.apps.MyappConfig', #或者直接写 myapp ]
5、创建数据库stu
使用Navicat数据库,在数据库中要创建数据库myweb,创建表stu,自己根据model模型中的数据类型增加数据。
数据都要有单引号,否则会报错
错误记录
TypeError: connect() argument 3 must be str, not int
类型不匹配的问题,要把数据库中字段的类型跟代码中的类型相匹配。
RuntimeError: Model class myapp.models.Stu doesn’t declare an explicit app_label and isn’t in an app
没有激活模型,原来我是写成myphoto,不是myapp,所以会报错。
6、应用
# 文件:myapp/views.py 文件代码 from django.shortcuts import render from django.http import HttpResponse from myapp.models import Stu # Create your views here. def index(request): return HttpResponse("Hello Django!") def stu(request): #获取所有stu表信息 lists = Stu.objects.all() print(lists) #获取单条学生信息 print(Stu.objects.get(id=1)) return HttpResponse("ok")
配置stu函数的访问路由
#在myapp/urls.py文件中配置 path('stu/', views.stu),
然后启动服务
python manage.py runserver
在网页中的路径改为以下路径
http://127.0.0.1:8088/myapp/stu/
cmd里有数据显示
显示数据库中的数据
7、总结
简易的一个获取数据库内容的例子,最主要的是要自己先创建数据才能获取到。
加载全部内容