国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

Django關(guān)聯(lián)已有數(shù)據(jù)庫(kù)中已有的數(shù)據(jù)表

這篇具有很好參考價(jià)值的文章主要介紹了Django關(guān)聯(lián)已有數(shù)據(jù)庫(kù)中已有的數(shù)據(jù)表。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

Django關(guān)聯(lián)已有數(shù)據(jù)庫(kù)中已有的數(shù)據(jù)表

兜兜轉(zhuǎn)轉(zhuǎn),發(fā)現(xiàn)自己還得用Python寫后端,無(wú)語(yǔ)。。。

在寫Django項(xiàng)目時(shí),一般是通過模型來(lái)創(chuàng)建表,以及通過ORM框架來(lái)實(shí)現(xiàn)數(shù)據(jù)的crud,現(xiàn)在的情況是,如果我們的數(shù)據(jù)表已經(jīng)存在了,如何引入到Django的項(xiàng)目中,方便我們實(shí)現(xiàn)ORM操作呢,記錄一下可行的方案

第一步,連接數(shù)據(jù)庫(kù)

如:我想連接我MySQL數(shù)據(jù)庫(kù)中的blog數(shù)據(jù)庫(kù),其中有兩張表是數(shù)據(jù)庫(kù)中本身就存在的表,分別是blog和category表,并非是通過Django創(chuàng)建的,如下圖:

Django關(guān)聯(lián)已有數(shù)據(jù)庫(kù)中已有的數(shù)據(jù)表,Python基礎(chǔ),數(shù)據(jù)庫(kù),django,MySQL

需要在settings.py文件中寫入數(shù)據(jù)庫(kù)的信息,如下:

Django關(guān)聯(lián)已有數(shù)據(jù)庫(kù)中已有的數(shù)據(jù)表,Python基礎(chǔ),數(shù)據(jù)庫(kù),django,MySQL

代碼:

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

第二步,導(dǎo)入MySQL配置

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

Django關(guān)聯(lián)已有數(shù)據(jù)庫(kù)中已有的數(shù)據(jù)表,Python基礎(chǔ),數(shù)據(jù)庫(kù),django,MySQL

代碼:

import pymysql
pymysql.install_as_MySQLdb()

如果沒有安裝pymysql可以先安裝一下,其實(shí)我并沒有驗(yàn)證這步是不是必須的,但確實(shí)成功了

第三步,導(dǎo)入數(shù)據(jù)表到Django項(xiàng)目中

終端執(zhí)行下面的命令

python manage.py inspectdb > models.py

Django關(guān)聯(lián)已有數(shù)據(jù)庫(kù)中已有的數(shù)據(jù)表,Python基礎(chǔ),數(shù)據(jù)庫(kù),django,MySQL

執(zhí)行命令后,會(huì)在根目錄下自動(dòng)生成一個(gè)模型文件models.py

第四步,修改models.py文件

打開剛才生成的models.py文件,里面的代碼如下:

Django關(guān)聯(lián)已有數(shù)據(jù)庫(kù)中已有的數(shù)據(jù)表,Python基礎(chǔ),數(shù)據(jù)庫(kù),django,MySQL

它會(huì)自動(dòng)生成與數(shù)據(jù)表相關(guān)的模型,但如果想在自己定義的app中使用的話,還不夠,需要自己去指定app名稱,就是我框出來(lái)的那段話,意思是這個(gè)模型是給app01這個(gè)應(yīng)用使用的,不然會(huì)報(bào)錯(cuò)

其實(shí)就是在模型的Meta類下添加app_label屬性,如下

app_label = 'app01'

這種方式不太符合邏輯,因?yàn)槲沂且趹?yīng)用中去寫模型,而不是模型中去綁定應(yīng)用,所以我推薦用下面這種做法

把自動(dòng)生成的models.py中自動(dòng)生成的代碼,拷貝到對(duì)應(yīng)app也就是app01中的models.py文件中,并統(tǒng)一做如下調(diào)整:

Django關(guān)聯(lián)已有數(shù)據(jù)庫(kù)中已有的數(shù)據(jù)表,Python基礎(chǔ),數(shù)據(jù)庫(kù),django,MySQL

因?yàn)檫@個(gè)models.py就是app01的模型,所以無(wú)需寫app_label = ‘a(chǎn)pp01’

接下來(lái)就可以刪除自動(dòng)生成的models.py文件了

第五步,數(shù)據(jù)遷移

通用操作,終端執(zhí)行下面的代碼:

python manage.py migrate

第六步,視圖函數(shù)中應(yīng)用模型

如,我想獲取blog表中所有的數(shù)據(jù),在視圖函數(shù)中添加以下方法就行了

from django.http import JsonResponse
from django.shortcuts import render

# Create your views here.
from django.views.decorators.csrf import csrf_exempt
from .models import Blog

@csrf_exempt
def index(request):
    if request.method == 'POST':
        blogs = Blog.objects.all()
        blog_data = [{'id': blog.id, 'title': blog.title, 'content': blog.content} for blog in blogs]
        print(request.POST['name'])
    return JsonResponse(blog_data, safe=False)

這段代碼是我上面pycharm截圖中右邊的文件,位置是app01的views.py文件中

有兩個(gè)注意點(diǎn):

  1. @csrf_exempt是為了解決跨域問題
  2. return JsonResponse(blog_data, safe=False)其中的safe=False必須寫,因?yàn)閎log_data是一個(gè)列表(或者叫數(shù)組,有點(diǎn)魔怔了,Python中叫列表,java和JavaScript叫數(shù)組),并非json格式的數(shù)據(jù),直接用JsonResponse返回會(huì)報(bào)錯(cuò),添加safe=False就是不去強(qiáng)行檢查返回的數(shù)據(jù)格式

正確配置路由后,就可以去postman測(cè)一下接口是不是通的了

Django關(guān)聯(lián)已有數(shù)據(jù)庫(kù)中已有的數(shù)據(jù)表,Python基礎(chǔ),數(shù)據(jù)庫(kù),django,MySQL可以看到,接口正確返回了想要的數(shù)據(jù)文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-804883.html

到了這里,關(guān)于Django關(guān)聯(lián)已有數(shù)據(jù)庫(kù)中已有的數(shù)據(jù)表的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來(lái)自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • Django基礎(chǔ)入門?:DjangoDjango數(shù)據(jù)表關(guān)聯(lián)(一對(duì)一,一對(duì)多,多對(duì)多關(guān)系)

    Django基礎(chǔ)入門?:DjangoDjango數(shù)據(jù)表關(guān)聯(lián)(一對(duì)一,一對(duì)多,多對(duì)多關(guān)系)

    ??????個(gè)人簡(jiǎn)介:以山河作禮。 ??????: Python領(lǐng)域新星創(chuàng)作者,CSDN實(shí)力新星認(rèn)證,阿里云社區(qū)專家博主,CSDN內(nèi)容合伙人 ????:Web全棧開發(fā)專欄:《Web全棧開發(fā)》免費(fèi)專欄,歡迎閱讀! ????: 文章末尾掃描二維碼可以加入粉絲交流群,不定期免費(fèi)送書。 Django數(shù)據(jù)表關(guān)

    2024年02月12日
    瀏覽(89)
  • Django的mysql數(shù)據(jù)庫(kù)問題:同一個(gè)模型(同一張表)中的不同記錄也是可以相互關(guān)聯(lián)的【使用“自引用關(guān)系”】

    是的,確實(shí)可以在Django的模型中使用外鍵來(lái)建立同一模型中不同記錄之間的關(guān)聯(lián)關(guān)系。這樣的關(guān)聯(lián)關(guān)系被稱為自引用關(guān)系(self-referential relationship)或者自關(guān)聯(lián)關(guān)系。通過在模型中定義外鍵字段,你可以使模型的實(shí)例與同一模型中的其他實(shí)例產(chǎn)生關(guān)聯(lián)。 在Django中,這通常通過

    2024年01月18日
    瀏覽(104)
  • SQL Server數(shù)據(jù)庫(kù)中已存在名為‘student‘的對(duì)象。

    SQL Server數(shù)據(jù)庫(kù)中已存在名為‘student‘的對(duì)象。

    新手,學(xué)習(xí)的網(wǎng)上例子,在第一次新建表時(shí),執(zhí)行無(wú)錯(cuò)誤;第二次再次執(zhí)行就報(bào)錯(cuò):數(shù)據(jù)庫(kù)中已存在名為‘student’的對(duì)象。說(shuō)明了這個(gè)名為‘student’的表已經(jīng)建立,如果要再次新建表,就得把舊的表刪除后重新執(zhí)行。如果表已經(jīng)設(shè)置好各項(xiàng)參數(shù)了,建議還是不要?jiǎng)h掉哈,不

    2024年02月07日
    瀏覽(14)
  • 數(shù)據(jù)庫(kù)基礎(chǔ)——數(shù)據(jù)庫(kù)、數(shù)據(jù)表和SQL語(yǔ)句

    數(shù)據(jù)庫(kù)基礎(chǔ)——數(shù)據(jù)庫(kù)、數(shù)據(jù)表和SQL語(yǔ)句

    數(shù)據(jù)庫(kù)是用來(lái)存儲(chǔ)、管理數(shù)據(jù)的倉(cāng)庫(kù) 數(shù)據(jù)表是數(shù)據(jù)的存儲(chǔ)結(jié)構(gòu) Structured Query Language,結(jié)構(gòu)化查詢語(yǔ)言,用來(lái)操作數(shù)據(jù)庫(kù) 安裝MySQL,自行百度 進(jìn)入cmd使用命令 mysql -hAddress -uUser -p(Password) 登錄數(shù)據(jù)庫(kù) -p后直接回車可進(jìn)入密文登錄 如果出現(xiàn)以下報(bào)錯(cuò),則打開任務(wù)管理器-服務(wù)-開啟

    2024年02月09日
    瀏覽(45)
  • idea配置MySQL數(shù)據(jù)庫(kù),以及將已存在的數(shù)據(jù)表導(dǎo)入數(shù)據(jù)庫(kù)

    idea配置MySQL數(shù)據(jù)庫(kù),以及將已存在的數(shù)據(jù)表導(dǎo)入數(shù)據(jù)庫(kù)

    首先,確定自己需要的數(shù)據(jù)庫(kù)名字,結(jié)合jeecg項(xiàng)目,我在項(xiàng)目中得知我需要鏈接的數(shù)據(jù)庫(kù)的名字為? ? ?jeecg-boot 打開數(shù)據(jù)庫(kù)的可視化軟件, ? ? 點(diǎn)擊開始,即可導(dǎo)入,刷新數(shù)據(jù)庫(kù),就可以看到導(dǎo)入的數(shù)據(jù)表了。 接下來(lái)在idea鏈接MySQL ? ? 點(diǎn)擊OK,就完成配置了,刷新一下,就

    2024年02月11日
    瀏覽(96)
  • 數(shù)據(jù)庫(kù)||數(shù)據(jù)表的更新

    1.實(shí)驗(yàn)題目:數(shù)據(jù)表的更新 2.實(shí)驗(yàn)?zāi)亢鸵螅?1)掌握SQL語(yǔ)句的數(shù)據(jù)操縱功能 2)掌握SQL語(yǔ)言的數(shù)據(jù)插入,修改,刪除操作 3)掌握與嵌套查詢相結(jié)合的插入,刪除,修改數(shù)據(jù)的SQL語(yǔ)句 3.實(shí)驗(yàn)步驟: 1) 按實(shí)驗(yàn)內(nèi)容要求完成各項(xiàng)操作 2) 根據(jù)題目要求給出解決方案 3) 提交實(shí)驗(yàn)報(bào)告 4.實(shí)驗(yàn)內(nèi)容

    2024年02月19日
    瀏覽(35)
  • 【JaveWeb教程】(18) MySQL數(shù)據(jù)庫(kù)開發(fā)之 MySQL數(shù)據(jù)庫(kù)設(shè)計(jì)-DDL 如何查詢、創(chuàng)建、使用、刪除數(shù)據(jù)庫(kù)數(shù)據(jù)表 詳細(xì)代碼示例講解

    【JaveWeb教程】(18) MySQL數(shù)據(jù)庫(kù)開發(fā)之 MySQL數(shù)據(jù)庫(kù)設(shè)計(jì)-DDL 如何查詢、創(chuàng)建、使用、刪除數(shù)據(jù)庫(kù)數(shù)據(jù)表 詳細(xì)代碼示例講解

    下面我們就正式的進(jìn)入到SQL語(yǔ)句的學(xué)習(xí),在學(xué)習(xí)之前先給大家介紹一下我們要開發(fā)一個(gè)項(xiàng)目,整個(gè)開發(fā)流程是什么樣的,以及在流程當(dāng)中哪些環(huán)節(jié)會(huì)涉及到數(shù)據(jù)庫(kù)。 2.1 項(xiàng)目開發(fā)流程 需求文檔: 在我們開發(fā)一個(gè)項(xiàng)目或者項(xiàng)目當(dāng)中的某個(gè)模塊之前,會(huì)先會(huì)拿到產(chǎn)品經(jīng)理給我們提

    2024年01月25日
    瀏覽(104)
  • mysql數(shù)據(jù)庫(kù)和數(shù)據(jù)表

    常用的數(shù)據(jù)類型: int : 整型? 用于定義整數(shù)類型的數(shù)據(jù) float : 單精度浮點(diǎn)4字節(jié)32位? 準(zhǔn)確表示到小數(shù)點(diǎn)后六位. double :雙精度浮點(diǎn)8字節(jié)64位 char :固定長(zhǎng)度的字符類型? 用于定義字符類型數(shù)據(jù) varchar :可變長(zhǎng)度的字符類型 text : 文本 image: :圖片 SQL語(yǔ)言: Structured Query La

    2024年02月10日
    瀏覽(32)
  • 數(shù)據(jù)庫(kù)實(shí)驗(yàn)2 創(chuàng)建數(shù)據(jù)表修改數(shù)據(jù)表和刪除數(shù)據(jù)表

    數(shù)據(jù)庫(kù)實(shí)驗(yàn)2 創(chuàng)建數(shù)據(jù)表修改數(shù)據(jù)表和刪除數(shù)據(jù)表

    實(shí)驗(yàn)2 創(chuàng)建數(shù)據(jù)表修改數(shù)據(jù)表和刪除數(shù)據(jù)表 實(shí)驗(yàn)類型: ●驗(yàn)證性實(shí)驗(yàn) ?○綜合性實(shí)驗(yàn) ?○設(shè)計(jì)性實(shí)驗(yàn) 實(shí)驗(yàn)?zāi)康模????? (1)了解數(shù)據(jù)表的結(jié)構(gòu)特點(diǎn)。 ?????(2)掌握表中列定義時(shí)所用到的各種數(shù)據(jù)類型。 ?????(3)學(xué)會(huì)使用企業(yè)管理器(即MSSMS-----Microsoft SQL?Server Manag

    2024年02月07日
    瀏覽(106)
  • MySQL數(shù)據(jù)庫(kù)——6、刪除數(shù)據(jù)表

    刪除一個(gè)數(shù)據(jù)表,使用 SQL 命令 DROP TABLE 。 DROP TABLE 命令允許從數(shù)據(jù)庫(kù)中永久刪除指定的數(shù)據(jù)表及其所有數(shù)據(jù)。 DROP TABLE table_name; ? table_name 是要?jiǎng)h除的數(shù)據(jù)表的名稱。 例如,要?jiǎng)h除名為 users 的數(shù)據(jù)表,可以執(zhí)行以下 SQL 命令: DROP TABLE users; ? 執(zhí)行此命令后,名為 users 的數(shù)據(jù)

    2024年04月11日
    瀏覽(93)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包