Django使用Mysql數據庫已經存在的數據表方法是什么
MySQL是一種關系數據庫管理系統(tǒng),關系數據庫將數據保存在不同的表中,而不是將所有數據放在一個大倉庫內,這樣就增加了速度并提高了靈活性。今天小編就為大家分享一篇Django使用Mysql數據庫已經存在的數據表方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧。
方法步驟
使用scrapy爬取了網上的一些數據,存儲在了mysql數據庫中,想使用Django將數據展示出來,在網上看到都是使用Django的models和makemigration,migrate命令來創(chuàng)建新表,并使用。
可是我的數據已經存在了已經創(chuàng)建好,并且已經存儲有數據了,不能再重新創(chuàng)建新表了。
了解Django的表明和models名稱的映射關系就可以讓Django使用已經存在的表。
假如在Django存在models如下:
from django.db import models
# Create your models here.
class Sciencenews(models.Model):
id = models.CharField(max_length=36,primary_key=True)
first_module = models.CharField(max_length=30,default="News")
second_module = models.CharField(max_length=30,default="Latest News")
title = models.CharField(max_length=300)
author = models.CharField(max_length=60,null=True)
publish_date = models.CharField(max_length=35,null=True)
content = models.TextField(null=True)
crawl_date = models.CharField(max_length=35,null=True)
from_url = models.CharField(max_length=350,null=True)
執(zhí)行數據遷移命令:
python manage.py makemigration
python manage.py migrate
會在數據庫中生成名稱為show_sciencenews的數據表。
show為應用名稱,此處我的應用名稱為show。
可以看到Django創(chuàng)建表的命名規(guī)則:應用名_模型名。
我的存儲爬取到的數據的表格名稱原來為science_news,想要Django使用它,而不是創(chuàng)建新的表,只需要把的它的名稱改為:應用名_要與該表映射的models名稱,在此處我改為show_sciencenews。
然后使用如上的數據遷移命令,這時可能會提示數據表已經存在的錯誤,不用理會,models已經和數據表映射上了。接下來只需要正常使用models和數據表就可以了。
補充:MySQL 數據庫常用命令
create database name; 創(chuàng)建數據庫
use databasename; 進入數據庫
drop database name 直接刪除數據庫,不提醒
show tables; 顯示表
describe tablename; 查看表的結構
select 中加上distinct去除重復字段
mysqladmin drop databasename 刪除數據庫前,有提示。
顯示當前mysql版本和當前日期
select version(),current_date;
數據庫維護方法
在MySQL使用的過程中,在系統(tǒng)運行一段時間后,可能會產生碎片,造成空間的浪費,所以有必要定期的對MySQL進行碎片整理。
當刪除id=2的記錄時候,發(fā)生的現象
這個時候發(fā)現磁盤的空間并沒有減少。這種現象就叫做碎片化(有一部分的磁盤空間在數據刪除以后(空),還是無法被操作系統(tǒng)所使用。)
常見的優(yōu)化:
# alter table xxx engine myisam;
# optimize table t1;
注意: 在實際開發(fā)的過程中,上面兩個語句盡量少使用,因為在使用的過程中,MySQL的表的結構會整體全部重新整理,需要消耗很多的資源,建議在凌晨兩三點鐘的時候執(zhí)行。(在linux下有定時器腳本可以執(zhí)行,crontab)
MySQL相關文章: