Python 设置models数据库字段及Mysql数据库连接

from django.contrib.auth.models import User
from django.db import models

job_types = [
    (0, '技术类'),
    (1, '产品类'),
    (2, '运营类'),
    (3, '设计类')
]

Cities = [
    (0, '北京'),
    (1, '上海'),
    (2, '广州'),
    (3, '深圳')
]


# Create your models here.
class Jobs(models.Model):
    # blank=False 不允许为空
    job_type = models.SmallIntegerField(blank=False, choices=job_types, verbose_name="职业类型")
    job_name = models.CharField(max_length=250, blank=False, verbose_name="职业名称")
    job_city = models.SmallIntegerField(choices=Cities, blank=False, verbose_name="工作地点")
    job_responsibility = models.TextField(max_length=1024, verbose_name="职位职责")
    job_requirement = models.TextField(max_length=1024, blank=False, verbose_name="职位要求")
    #  on_delete=models.SET_NULL() 数据删除外键关联如何处理,可以忽略,可以级联删除,也可以设置为空,是个函数
    creator = models.ForeignKey(User, verbose_name="创建人", on_delete=models.SET_DEFAULT, default='admin')
    created_time = models.DateTimeField(verbose_name="创建时间")
    modified_time = models.DateTimeField(verbose_name="修改时间")

安装MySQL软件安装包

在项目的 __init__.py 中
import pymysql 
pymysql.install_as_MySQLdb()

 安装失败,尝试用PIP命令的方式

 没有PIP命令,执行下面的命令安装

 -m pip install --upgrade

数据库连接配置

'ENGINE': 'django.db.backends.mysql',  # 数据库连接方式
'NAME': 'python_test05',  # 数据库名称
'USER': 'xxxxx',  # 数据库用户
'PASSWORD': 'xxxxxxxx',  # 数据库密码 远程服务器的
'HOST': 'xxxxx.xxxxx.xxxxxx.xxxxx',  # 数据库IP地址
'PORT': '3306',  # 数据库端口
'ATOMIC_REQUESTS': True  # 全局生效自动提交事务

在 项目的引入mysql数据库包

 

添加一个文章类的数据模型,用来练手一对多,和多对多的关系 

from django.db import models


# Create your models here.
class Book(models.Model):
    title = models.CharField(max_length=50, verbose_name="书籍名称")
    price = models.IntegerField(verbose_name="书籍价格")
    pub_date = models.DateField(verbose_name="出版日期")
    reading_quantity = models.IntegerField(verbose_name="阅读量")
    comments = models.IntegerField(verbose_name="评论量")
    publish = models.ForeignKey("Publish", on_delete=models.CASCADE, verbose_name="出版社名称")
    authors = models.ManyToManyField("Author", verbose_name="作者")

    def __str__(self):
        return self.title


class Publish(models.Model):
    name = models.CharField(max_length=50, verbose_name="出版社名称")
    pub_email = models.EmailField(verbose_name="出版社邮箱")

    def __str__(self):
        return self.name


class Author(models.Model):
    name = models.CharField(max_length=50, verbose_name="作者名称")
    age = models.IntegerField(verbose_name="作者年龄")
    author_email = models.EmailField(verbose_name="作者邮箱")

    def __str__(self):
        return self.name
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值