当前位置:   article > 正文

Django的快速入门——3项目的模型

Django的快速入门——3项目的模型

(1). 连接MySQL数据库设置

默认情况下,配置使用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项进行数据库设置

  1. DATABASES = {
  2. 'default': {
  3. 'ENGINE': 'django.db.backends.mysql',
  4. 'NAME': 'mydemo',
  5. 'USER': 'root',
  6. 'PASSWORD': '',
  7. 'HOST': 'localhost',
  8. 'PORT': '3306',
  9. }
  10. }

注意:Django使用MySQL数据库需要加载 MySQLdb模块,需要安装 mysqlclient,若已经安装请略过。 (Django2.2版本之前我们安装的是pymysql模块,不过现在使用的mysqlclient )

  $ pip install  mysqlclient
下载到本地安装:(解决安装中的错误)
  • 执行命令查看python版本与系统位数(32/64位) ``` C:\Users\Administrator>python 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.

    >

  1. * 访问网址: https://www.lfd.uci.edu/~gohlke/pythonlibs/#mysqlclient
  2. * 下载一个对应的安装包当当前系统目录:

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

  1. * 执行安装:
pip install mysqlclient‑1.4.6‑cp38‑cp38‑win32.whl
  1. ### (2). 创建模型
  2. 在我们的简单的应用程序中,去创建一个stu表信息操作的Model类。
  3. 编辑 myapp/models.py文件
  4. ```python
  5. from django.db import models
  6. # Create your models here.
  7. class Stu(models.Model):
  8. '''自定义Stu表对应的Model类'''
  9. #定义属性:默认主键自增id字段可不写
  10. id = models.AutoField(primary_key=True)
  11. name = models.CharField(max_length=16)
  12. age = models.SmallIntegerField()
  13. sex = models.CharField(max_length=1)
  14. classid=models.CharField(max_length=8)
  15. # 定义默认输出格式
  16. def __str__(self):
  17. return "%d:%s:%d:%s:%s"%(self.id,self.name,self.age,self.sex,self.classid)
  18. # 自定义对应的表名,默认表名:myapp_stu
  19. class Meta:
  20. db_table="stu"

(3). 激活模型

要将该应用程序包括在我们的项目中,我们需要在设置中添加对其配置类的引用INSTALLED_APPS。

该 myappConfig班是在myapp/apps.py文件中,所以它的虚线路径'myapp.apps.myappConfig'。

编辑myweb/settings.py文件,并将该虚线路径添加到该INSTALLED_APPS设置。

  1. INSTALLED_APPS = [
  2. 'django.contrib.admin'
  3. 'django.contrib.auth'
  4. 'django.contrib.contenttypes'
  5. 'django.contrib.sessions'
  6. 'django.contrib.messages'
  7. 'django.contrib.staticfiles'
  8. 'myapp.apps.MyappConfig', #或者直接写 myapp
  9. ]

(4). 使用(两种)

① 现在进入交互式的Python shell,并使用Django提供的免费API
  1. C:\Users\张涛\Desktop\code\myweb>python manage.py shell
  2. Python 3.8.2 (tags/v3.8.2:7b3ab59, Feb 25 2020, 22:45:29) [MSC v.1916 32 bit (Intel)] on win32
  3. Type "help", "copyright", "credits" or "license" for more information.
  4. (InteractiveConsole)
  5. >>> from myapp.models import Stu
  6. >>> mod = Stu.objects
  7. # 获取所有信息
  8. >>> lists = mod.all()
  9. >>> for v in lists:
  10. ... print(v)
  11. ...
  12. 1:zhangsan:22:m:python03
  13. 2:lisi:25:w:python04
  14. 3:wangwu:20:m:python03
  15. 4:zhaoliu:19:w:python04
  16. 5:qq01:20:m:python03
  17. 6:qq02:21:w:python04
  18. 7:qq03:20:m:python05
  19. 8:uu01:21:w:python04
  20. 9:uu02:20:m:python05
  21. 10:aa:29:w:python03
  22. 11:bb:20:m:python04
  23. # 获取单条信息
  24. >>> mod.get(id=1)
  25. <Stu: 1:zhangsan:22:m:python03>
  26. >>> mod.get(id=2)
  27. <Stu: 2:lisi:25:w:python04>
  28. >>> mod.get(id=3)
  29. <Stu: 3:wangwu:20:m:python03>
  30. >>>
② 在myapp应用的视图中使用
  1. # 文件:myapp/views.py 文件代码
  2. from django.shortcuts import render
  3. from django.http import HttpResponse
  4. from myapp.models import Stu
  5. # Create your views here.
  6. def index(request):
  7. return HttpResponse("Hello Django!")
  8. def stu(request):
  9. #获取所有stu表信息
  10. lists = Stu.objects.all()
  11. print(lists)
  12. #获取单条学生信息
  13. print(Stu.objects.get(id=1))
  14. return HttpResponse("ok")
  • 配置stu函数的访问路由
  1. #在myapp/urls.py文件中配置
  2. path('stu/', views.stu),

启动服务后,在浏览器中访问,在命令行终端中查看输出效果: http://localhost:8000/myapp/stu

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/我家小花儿/article/detail/629612
推荐阅读
相关标签
  

闽ICP备14008679号