赞
踩
默认情况下,配置使用SQLite。若不使用SQLite作为数据库,则需要额外的设置,例如 USER,PASSWORD和HOST必须加入。
其中ENGINE设置为数据库后端使用。内置数据库后端有:
- 'django.db.backends.postgresql'
- 'django.db.backends.mysql'
- 'django.db.backends.sqlite3'
- 'django.db.backends.oracle'
在myweb/settings.py文件中,通过DATABASES项进行数据库设置
- DATABASES = {
- 'default': {
- 'ENGINE': 'django.db.backends.mysql',
- 'NAME': 'mydemo',
- 'USER': 'root',
- 'PASSWORD': '',
- 'HOST': 'localhost',
- 'PORT': '3306',
- }
- }
注意:Django使用MySQL数据库需要加载 MySQLdb模块,需要安装 mysqlclient,若已经安装请略过。 (Django2.2版本之前我们安装的是pymysql模块,不过现在使用的mysqlclient )
$ pip install mysqlclient
>
-
- * 访问网址: https://www.lfd.uci.edu/~gohlke/pythonlibs/#mysqlclient
- * 下载一个对应的安装包当当前系统目录:
Mysqlclient: a fork of the MySQL-python interface for the MySQL database. mysqlclient‑1.4.6‑pp373‑pypy36_pp73‑win32.whl mysqlclient‑1.4.6‑cp39‑cp39‑win_amd64.whl mysqlclient‑1.4.6‑cp39‑cp39‑win32.whl mysqlclient‑1.4.6‑cp38‑cp38‑win_amd64.whl ✔ mysqlclient‑1.4.6‑cp38‑cp38‑win32.whl
mysqlclient‑1.4.6‑cp37‑cp37m‑win_amd64.whl mysqlclient‑1.4.6‑cp37‑cp37m‑win32.whl mysqlclient‑1.4.6‑cp36‑cp36m‑win_amd64.whl mysqlclient‑1.4.6‑cp36‑cp36m‑win32.whl mysqlclient‑1.4.6‑cp35‑cp35m‑win_amd64.whl mysqlclient‑1.4.6‑cp35‑cp35m‑win32.whl mysqlclient‑1.4.6‑cp27‑cp27m‑win_amd64.whl mysqlclient‑1.4.6‑cp27‑cp27m‑win32.whl
-
- * 执行安装:
pip install mysqlclient‑1.4.6‑cp38‑cp38‑win32.whl
-
- ### (2). 创建模型
-
- 在我们的简单的应用程序中,去创建一个stu表信息操作的Model类。
-
- 编辑 myapp/models.py文件
-
- ```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"
要将该应用程序包括在我们的项目中,我们需要在设置中添加对其配置类的引用INSTALLED_APPS。
该 myappConfig班是在myapp/apps.py文件中,所以它的虚线路径'myapp.apps.myappConfig'。
编辑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
- ]
- C:\Users\张涛\Desktop\code\myweb>python manage.py shell
- Python 3.8.2 (tags/v3.8.2:7b3ab59, Feb 25 2020, 22:45:29) [MSC v.1916 32 bit (Intel)] on win32
- Type "help", "copyright", "credits" or "license" for more information.
- (InteractiveConsole)
- >>> from myapp.models import Stu
- >>> mod = Stu.objects
- # 获取所有信息
- >>> lists = mod.all()
- >>> for v in lists:
- ... print(v)
- ...
- 1:zhangsan:22:m:python03
- 2:lisi:25:w:python04
- 3:wangwu:20:m:python03
- 4:zhaoliu:19:w:python04
- 5:qq01:20:m:python03
- 6:qq02:21:w:python04
- 7:qq03:20:m:python05
- 8:uu01:21:w:python04
- 9:uu02:20:m:python05
- 10:aa:29:w:python03
- 11:bb:20:m:python04
-
- # 获取单条信息
- >>> mod.get(id=1)
- <Stu: 1:zhangsan:22:m:python03>
- >>> mod.get(id=2)
- <Stu: 2:lisi:25:w:python04>
- >>> mod.get(id=3)
- <Stu: 3:wangwu:20:m:python03>
-
- >>>
- # 文件: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")
- #在myapp/urls.py文件中配置
-
- path('stu/', views.stu),
启动服务后,在浏览器中访问,在命令行终端中查看输出效果: http://localhost:8000/myapp/stu
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。