【Django】初入数据库--mysql

【Django】初入数据库--mysql,第1张

目录
  • Django模型
    • 架构
    • OMR与数据库的对应关系
  • 建立数据库
    • Navicat
    • ubuntu
  • 在Django中配置数据库
    • 写入数据库信息
    • 声明数据库的使用类型
    • 建立数据库的model
  • 在接口中调用数据库 *** 作
  • 运行
  • 简单的django-数据库 *** 作

Django模型

Django可以支持四种数据库(python3.7)

  1. PostgreSQL
  2. MySQL
  3. SQLite
  4. Oracle

我这边目前只使用mMySql

架构

Django的模型为数据库提供了提供了统一接口,名为OMR

OMR与数据库的对应关系
  1. Models类 <====> 数据表
  2. 对象实例 <====> 一条记录
  3. 属性 <====> 字段
建立数据库 Navicat
  1. 文件====>新建连接
  2. 输入连接信息
  3. 右击连接名(我这边是右击mysql-test),新建数据库
ubuntu
mysql -uroot -p
create database django_study default charset=utf8;
在Django中配置数据库 写入数据库信息

settings.py中

声明数据库的使用类型

在django项目的python包中__init__.py中声明下数据库的使用

import pymysql
pymysql.install_as_MySQLdb()
建立数据库的model
  1. 创建数据库model的工程
django-admin startapp start_django

前往 start_django/models.py下编写代码

from django.db import models

# Create your models here.
class Test(models.Model):
    name = models.CharField(max_length=20)
  1. 声明数据库model的位置
    前往 helloworld/setting.py下修改代码
INSTALLED_APPS = [
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    'start_django',	#添加这一行,声明这一model
]
  1. 初始化数据库表
    在django_study/models.py中加入下述代码
class Test(models.Model):
    name = models.CharField(max_length=20)

前面已经说过,models中的的类,对应的就是数据库中的表

  1. 生成全局数据库表
python manage.py migrate
# 得到下述回复
Operations to perform:
  Apply all migrations: admin, auth, contenttypes, sessions
Running migrations:
  Applying contenttypes.0001_initial... OK
  Applying auth.0001_initial... OK
  Applying admin.0001_initial... OK
  Applying admin.0003_logentry_add_action_flag_choices... 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 auth.0009_alter_user_last_name_max_length... OK
  Applying auth.0010_alter_group_name_max_length... OK
  Applying auth.0011_update_proxy_permissions... OK
  Applying auth.0012_alter_user_first_name_max_length... OK
  Applying sessions.0001_initial... OK




  1. 同步django中设置的数据库表
python manage.py makemigrations django_study
python manage.py migrate django_study

Migrations for 'django_study':
  django_study\migrations\0001_initial.py
    - Create model Test
    - Create model Test2

Operations to perform:
  Apply all migrations: django_study
Running migrations:
  Applying django_study.0001_initial... OK


这里生成的表是 models.py中的一个class,也就是前面加入的代码

在接口中调用数据库 *** 作
  1. 再次进入我们的视图文件代码中,这个工程里创建的视图文件是test_mysql.py
    加入如下代码
from django_study.models import Test
def test_mysql(request):
    test1 = Test(name='django_study')
    test1.save()
    return HttpResponse("

数据添加成功!

"
)
  1. 在urls.py中加入路径链接
path('test_mysql/', view.test_mysql),
运行
python manger.py runserver

代码中,对该表的 *** 作是name=‘django_study’

简单的django-数据库 *** 作

https://blog.csdn.net/python113/article/details/121310761

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/730161.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-04-27
下一篇 2022-04-27

发表评论

登录后才能评论

评论列表(0条)

保存