国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > Python > 正文

django+mysql的使用示例

2020-02-15 23:45:48
字體:
來源:轉載
供稿:網友

Django中每一個模型model都對應于數據庫中的一張表,每個模型中的字段都對應于數據庫表的列。方便的是,django可以自動生成這些create table, alter table, drop table的操作。其次Django為咱們也提供了后臺管理模塊(Django-Admin),主要功能是通過后臺管理來實現客戶端的功能,可以對數據進行增刪改查。也可以通過該功能進行二次開發

Django中的mysql配置

在上期內容,我們了解了settings.py配置信息的內容,其中DATABASES是用來管理數據庫配置的,默認是sqlite3數據庫,所以我們需要將其修改成mysql數據庫。

# Database# https://docs.djangoproject.com/en/2.0/ref/settings/#databases# 數據庫配置 默認的數據庫為sqlite# DATABASES = {#  'default': {#   'ENGINE': 'django.db.backends.sqlite3',#   'NAME': os.path.join(BASE_DIR, 'db.sqlite3'),#  }# }DATABASES = { 'default': {  'ENGINE': 'django.db.backends.mysql', # 數據庫引擎  'NAME': 'django_mysql', # 數據庫名  'USER': 'root', # 賬號  'PASSWORD': 'root', # 密碼  'HOST': '127.0.0.1', # HOST  'POST': 3306, # 端口 }}

字段名稱代碼中都添加了相應說明,ENGINE為MYSQL數據庫引擎,這個當然不會憑空出現,需要我們去安裝

安裝pymysql

pip3 install pymysql

項目中配置

在最開始的項目包下的 init .py中進行如下配置

"""setting中的配置默認為sqlite3數據庫 當需要修改成MySql時并且在setting.py的同級目錄的__init__.py 加入如下配置否則會報錯: Error loading MySQLdb module."""import pymysqlpymysql.install_as_MySQLdb()

如果mysql配置信息錯誤(用戶名、密碼、host等)控制臺會報如下異常

pymysql.err.OperationalError: (1045, "Access denied for user 'ROOT'@'localhost' (using password: YES)")

在app文件的models.py文件中 創建Student(學生信息)和StudentUnion(社團信息)

models.py:數據模塊,用于數據庫設計

"""創建學生信息表模型"""from django.db import models""" 該類是用來生成數據庫的 必須要繼承models.Model"""class Student(models.Model): """ 創建如下幾個表的字段 """ # 學號 primary_key=True: 該字段為主鍵 studentNum = models.CharField('學號', primary_key=True, max_length=15) # 姓名 字符串 最大長度20 name = models.CharField('姓名', max_length=20) # 年齡 整數 null=False, 表示該字段不能為空 age = models.IntegerField('年齡', null=False) # 性別 布爾類型 默認True: 男生 False:女生 sex = models.BooleanField('性別', default=True) # 手機 unique=True 該字段唯一 mobile = models.CharField('手機', unique=True, max_length=15) # 創建時間 auto_now_add:只有在新增的時候才會生效 createTime = models.DateTimeField(auto_now_add=True) # 修改時間 auto_now: 添加和修改都會改變時間 modifyTime = models.DateTimeField(auto_now=True) # 指定表名 不指定默認APP名字——類名(app_demo_Student) class Meta:  db_table = 'student'"""學生社團信息表"""class studentUnion(models.Model): # 自增主鍵, 這里不能設置default屬性,負責執行save的時候就不會新增而是修改元素 id = models.IntegerField(primary_key=True) # 社團名稱 unionName = models.CharField('社團名稱', max_length=20) # 社團人數 unionNum = models.IntegerField('人數', default=0) # 社團負責人 關聯Student的主鍵 即studentNum學號 一對一的關系,on__delete 屬性在django2.0之后為必填屬性后面會介紹 unionRoot = models.OneToOneField(Student, on_delete=None) class Meta:  db_table = 'student_union'"""OneToOneField: 一對一ForeignKey: 一對多ManyToManyField: 多對多(沒有ondelete 屬性)"""            
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 竹北市| 曲周县| 凤凰县| 改则县| 中牟县| 新余市| 马边| 东丰县| 紫阳县| 常德市| 大埔区| 安康市| 宁晋县| 广宗县| 铅山县| 龙海市| 积石山| 绵竹市| 健康| 易门县| 武穴市| 登封市| 宣汉县| 延寿县| 日土县| 辽宁省| 黑水县| 阿克陶县| 丹棱县| 乌苏市| 伊春市| 阿鲁科尔沁旗| 灵寿县| 亳州市| 青岛市| 武威市| 舟曲县| 手游| 杭锦后旗| 卓资县| 滁州市|