最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

django連接Mysql中已有數(shù)據(jù)庫的方法詳解

 更新時(shí)間:2022年05月30日 11:54:21   作者:ChangYan.  
眾所周知Django較為適合原生開發(fā),即通過該框架搭建一個(gè)全新的項(xiàng)目,通過在修改models.py來創(chuàng)建新的數(shù)據(jù)庫表,下面這篇文章主要給大家介紹了關(guān)于django連接Mysql中已有數(shù)據(jù)庫的相關(guān)資料,需要的朋友可以參考下

我的Mysql中已經(jīng)有了項(xiàng)目需要使用的相關(guān)數(shù)據(jù)庫,現(xiàn)在需要通過django來獲取Mysql里的數(shù)據(jù)并使用,下面記錄配置django與mysql的連接過程。

(此處默認(rèn)您已經(jīng)建好了django框架,如果沒有準(zhǔn)備好django,請參照我本篇文章

http://m.fzitv.net/article/249861.htm

首先需要在項(xiàng)目的settings.py文件中配置mysql的連接信息:把之前配置的sqlite配置信息替換。
之前默認(rèn)的數(shù)據(jù)庫配置信息如圖,是與sqlite連接的

現(xiàn)在我們需要替換為自己本地的Mysql信息,并連接我的ry-vue數(shù)據(jù)庫,代碼如下,相應(yīng)的屬性需要對應(yīng)自己的Mysql進(jìn)行配置,如果不清楚請看接下來的圖片:

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.mysql',
        'HOST': '127.0.0.1',		# 要連接的數(shù)據(jù)庫ip
        'PORT': '3306',				# 數(shù)據(jù)庫連接端口,一般默認(rèn)為3306
        'NAME': 'ry-vue',			# 已經(jīng)存在的數(shù)據(jù)庫名稱
        'USER': 'root',				# 用戶名
        'PASSWORD': '',				# 用戶密碼
        'OPTIONS': {
            'init_command': "SET sql_mode='STRICT_TRANS_TABLES'",
            }
    }
}

Mysql的相關(guān)對應(yīng)信息查看過程如圖:

就能看到對應(yīng)的連接信息:

然后在settings.py同級目錄的__init__.py文件中增加下面代碼,導(dǎo)入mysql的配置

# coding=utf-8

import pymysql
pymysql.install_as_MySQLdb()

如圖:

這時(shí)你會(huì)發(fā)現(xiàn)導(dǎo)入的pymysql有報(bào)錯(cuò),這是因?yàn)槲覀冞€沒有安裝pymysql包,根據(jù)下圖過程來進(jìn)行pymysql的安裝:

等安裝成功后就不會(huì)報(bào)錯(cuò)了。

之后導(dǎo)入數(shù)據(jù)庫中的表到django里,執(zhí)行下邊的命令,該命令的意思是將對應(yīng)數(shù)據(jù)庫的表自動(dòng)生成到models.py文件中。

python manage.py inspectdb > models.py

等幾秒或者刷新一下文件夾,就能在 manage.py 的下面出現(xiàn)一個(gè) models.py,里面包含了已有數(shù)據(jù)庫的所有表及結(jié)構(gòu)。

可以看到第一個(gè)表是bank,與我的數(shù)據(jù)庫ry-vue里的顯示完全一樣

之后把想要使用的表的 managed 都改成 True。比如我想要在django中操作scratch_choice_answer表里的信息,則需要通過類名找到該表,然后修改如圖:

接著將需要用的表復(fù)制到你的程序需要使用的目錄下。 如果基本上都會(huì)用到,那就復(fù)制整個(gè)文件,比如我的register只里需要用到scratch_choice_answer表里的信息,那么我就操作如下,只復(fù)制 class ScratchChoiceAnswer這部分的內(nèi)容到需要的文件夾下就可以。

因?yàn)樾枰玫絩egister這個(gè)app,再次確認(rèn)一下此文件是否在settings注冊過

等到把需要的內(nèi)容復(fù)制到要使用的文件夾之后,剛剛自動(dòng)生成的models.py已經(jīng)沒有用了,就可以刪除了,注意該文件位置是在manage.py下邊。
下次如果只單獨(dú)使用一個(gè)表,就可以使用如下的代碼進(jìn)行mysql的生成,而不需要全部進(jìn)行生成,代碼如下,表示只生成scratch_choice_answer表里的信息。

python manage.py inspectdb scratch_choice_answer

然后只需將上圖紅框部分的內(nèi)容復(fù)制到需要的models.py里就可以。注意要將managed 的 False 設(shè)置為 True

然后運(yùn)行如下指令,該指令就是將django與數(shù)據(jù)庫進(jìn)行同步,可以進(jìn)行增刪改查操作。

python manage.py migrate

等顯示OK后就可以通過django對數(shù)據(jù)庫進(jìn)行操作了。

(這時(shí)候刷新一下Mysql,會(huì)發(fā)現(xiàn)自動(dòng)生成了auth_xxx和django_xxx的表,這個(gè)是django用來記錄對數(shù)據(jù)庫的一些操作的,就放那兒不用管,對整個(gè)項(xiàng)目的運(yùn)行沒有影響)

連接成功驗(yàn)證

我需要獲取一下scratch_choice_answer表里的choice_id,如圖

則輸入代碼如下:

from register.models import ScratchChoiceAnswer

answer = ScratchChoiceAnswer.objects.all().values('choice_id')
print(answer)

然后運(yùn)行django,(如果這時(shí)候報(bào)錯(cuò)ValueError: source code string cannot contain null bytes,其實(shí)是models里的編碼問題,解決方法:

運(yùn)行django框架出現(xiàn)如下報(bào)錯(cuò),我出現(xiàn)該問題是由于數(shù)據(jù)庫編碼不正確

解決方法如下:

打開models.py,將編碼改為UTF-8

django運(yùn)行成功后可以看到獲取到Mysql里的值

大功告成!

總結(jié)

到此這篇關(guān)于django連接Mysql中已有數(shù)據(jù)庫的文章就介紹到這了,更多相關(guān)django連接Mysql數(shù)據(jù)庫內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Python中的配對函數(shù)zip()解讀

    Python中的配對函數(shù)zip()解讀

    這篇文章主要介紹了Python中的配對函數(shù)zip()解讀,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-11-11
  • python順序的讀取文件夾下名稱有序的文件方法

    python順序的讀取文件夾下名稱有序的文件方法

    今天小編就為大家分享一篇python順序的讀取文件夾下名稱有序的文件方法,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-07-07
  • python中open函數(shù)對文件處理的使用教程

    python中open函數(shù)對文件處理的使用教程

    open()函數(shù)的作用是打開一個(gè)文件,并返回一個(gè)file對象(即文件對象),下面這篇文章主要給大家介紹了關(guān)于python中open函數(shù)對文件處理的相關(guān)資料,需要的朋友可以參考下
    2022-06-06
  • 聊聊基于pytorch實(shí)現(xiàn)Resnet對本地?cái)?shù)據(jù)集的訓(xùn)練問題

    聊聊基于pytorch實(shí)現(xiàn)Resnet對本地?cái)?shù)據(jù)集的訓(xùn)練問題

    本文項(xiàng)目是使用Resnet模型來識別螞蟻和蜜蜂,其一共有三百九十六張的數(shù)據(jù),訓(xùn)練集只有兩百多張(數(shù)據(jù)集很?。?,運(yùn)行十輪后,分別對訓(xùn)練集和測試集在每一輪的準(zhǔn)確率,對pytorch實(shí)現(xiàn)Resnet本地?cái)?shù)據(jù)集的訓(xùn)練感興趣的朋友一起看看吧
    2022-03-03
  • python opencv判斷圖像是否為空的實(shí)例

    python opencv判斷圖像是否為空的實(shí)例

    今天小編就為大家分享一篇python opencv判斷圖像是否為空的實(shí)例,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-01-01
  • windows系統(tǒng)下Python環(huán)境的搭建(Aptana Studio)

    windows系統(tǒng)下Python環(huán)境的搭建(Aptana Studio)

    這篇文章主要介紹了windows系統(tǒng)下Python環(huán)境的搭建(Aptana Studio),需要的朋友可以參考下
    2017-03-03
  • Numpy中Meshgrid函數(shù)基本用法及2種應(yīng)用場景

    Numpy中Meshgrid函數(shù)基本用法及2種應(yīng)用場景

    NumPy包含很多實(shí)用的數(shù)學(xué)函數(shù),涵蓋線性代數(shù)運(yùn)算、傅里葉變換和隨機(jī)數(shù)生成等功能,下面這篇文章主要給大家介紹了關(guān)于Numpy中Meshgrid函數(shù)基本用法及2種應(yīng)用場景的相關(guān)資料,需要的朋友可以參考下
    2022-08-08
  • Python中Get()函數(shù)用法舉例介紹

    Python中Get()函數(shù)用法舉例介紹

    這篇文章主要給大家介紹了關(guān)于Python中Get()函數(shù)用法的相關(guān)資料,Python get()函數(shù)是一個(gè)非常重要的函數(shù),它可以幫助我們從字典中獲取對應(yīng)鍵的值,避免了因?yàn)殒I不存在而發(fā)生錯(cuò)誤的情況,需要的朋友可以參考下
    2023-10-10
  • Python函及模塊的使用

    Python函及模塊的使用

    這篇文章主要介紹了Python函及模塊的使用,基本函數(shù)包括定義函數(shù)、函數(shù)的參數(shù)、用模塊管理函數(shù)等一些基本定義,下面文章不僅對這些又說描述,還有變量的作用域的詳細(xì)內(nèi)容,需要的朋友可以參考一下,希望對你有所幫助
    2021-11-11
  • python Timer 類使用介紹

    python Timer 類使用介紹

    這篇文章主要介紹了python Timer 類使用介紹的相關(guān)資料,幫助大家更好的理解和使用python iupdatable包,感興趣的朋友可以了解下
    2020-12-12

最新評論

泽州县| 河东区| 兴业县| 沧州市| 麟游县| 全南县| 分宜县| 秦安县| 秦安县| 崇明县| 荃湾区| 海淀区| 静海县| 台北市| 桂平市| 大兴区| 十堰市| 增城市| 揭阳市| 莆田市| 北安市| 刚察县| 定西市| 英德市| 婺源县| 长宁县| 舒城县| 剑川县| 方城县| 嫩江县| 金乡县| 逊克县| 怀集县| 舒兰市| 西峡县| 绵阳市| 浮梁县| 邯郸市| 兴国县| 河池市| 贵德县|