日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 运维知识 > 数据库 >内容正文

数据库

django 不用自带的mysql_python笔记二 django自带后台管理系统、模版渲染以及使用mysql数据库...

發(fā)布時(shí)間:2025/3/20 数据库 26 豆豆
生活随笔 收集整理的這篇文章主要介紹了 django 不用自带的mysql_python笔记二 django自带后台管理系统、模版渲染以及使用mysql数据库... 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

上一篇簡(jiǎn)單的說(shuō)了一下整體項(xiàng)目的搭建,但是這還不夠,一般完整的項(xiàng)目還要有很多東西,比如前端頁(yè)面有一些數(shù)據(jù)不是固定的,需要前后端交互,還需要后臺(tái)管理系統(tǒng),有可能我還不想用自帶的sqlite,想用mysql。這一篇講一下后臺(tái)管理、模版渲染、以及怎么用mysql數(shù)據(jù)庫(kù),前后端交互我會(huì)在另外一篇文章,前后端分離再說(shuō)。

一、django自帶的后臺(tái)管理系統(tǒng)

1、建表

后臺(tái)管理系統(tǒng)數(shù)據(jù)庫(kù)是一定要用的,python已經(jīng)幫我們做了很多東西,我們只需要調(diào)用就可以了,首先需要建表,打開myapp下models.py,添加以下內(nèi)容

image.png

接下來(lái)需要同步數(shù)據(jù)庫(kù),上一篇已經(jīng)在搭建項(xiàng)目的時(shí)候說(shuō)過(guò)了,這里重新說(shuō)一下,只需要兩行命令。

image.png

這時(shí)候會(huì)發(fā)現(xiàn)根目錄下多了一個(gè)db.sqlite3的文件,打開是亂碼,沒(méi)錯(cuò)這就是剛剛新建的表。。。以文本的形式存儲(chǔ)在根目錄下。

還需要一步操作,打開myapp目錄下的admin.py,添加如下內(nèi)容,用后臺(tái)管理系統(tǒng)來(lái)管理剛創(chuàng)建的表。

image.png

2、后臺(tái)管理系統(tǒng)

django的后臺(tái)管理系統(tǒng)已經(jīng)很完善了,我們需要做的就是創(chuàng)建一個(gè)賬號(hào),登錄,操作,沒(méi)有其他了,不需要自己寫任何東西。

創(chuàng)建賬號(hào)

image.png

請(qǐng)忽略那幾行提示,密碼我用的是六個(gè)1,多么的貼心,給了我三行提示。

至此賬號(hào)已經(jīng)創(chuàng)建好了,接下來(lái)就是打開后臺(tái)管理系統(tǒng)登錄。

相信在上一篇寫urls的時(shí)候都發(fā)現(xiàn)了有一個(gè)admin的默認(rèn)路徑,那個(gè)就是后臺(tái)管理系統(tǒng)。

python manage.py runserver

在瀏覽器地址欄輸入http://127.0.0.1:8000/admin

image.png

輸入剛創(chuàng)建好的賬號(hào)和密碼登錄

image.png

這就是剛創(chuàng)建的表,點(diǎn)擊Add我們來(lái)添加一組數(shù)據(jù)。

image.png

image.png

這就是django自帶的后臺(tái)管理系統(tǒng)。

二、模版渲染

1、直接將數(shù)據(jù)渲染到頁(yè)面

有了數(shù)據(jù)就要顯示在前端,這就要用到模版渲染,上一篇已經(jīng)說(shuō)過(guò)怎么建模版,這里就不說(shuō)了,主要說(shuō)以下怎么渲染數(shù)據(jù)。

首先需要在渲染模版的時(shí)候把數(shù)據(jù)一起返回,打開myapp目錄下的views.py

image.png

templates目錄下的index.html需要修改如下

image.png

這里用到了django渲染模版的語(yǔ)法。

刷新瀏覽器

image.png

2、數(shù)據(jù)傳遞給js

有時(shí)候數(shù)據(jù)需要做一些處理再渲染到頁(yè)面,這就要先把數(shù)據(jù)給js,具體操作方法和直接渲染其實(shí)差不多。

在index.html里加上這句代碼

image.png

{{}}里邊的就是傳遞過(guò)來(lái)的數(shù)據(jù),和直接渲染是一樣的,如果只是一個(gè)字符串或者數(shù)字,可以直接用{{}}包裹,寫到body里。

打開開發(fā)者模式,刷新瀏覽器。

Uncaught SyntaxError: Unexpected token &

是不是報(bào)錯(cuò)了,這就對(duì)了。

看一下script標(biāo)簽里是什么情況

image.png

說(shuō)好的數(shù)據(jù)呢。。。

我們需要在數(shù)據(jù)傳過(guò)來(lái)之前處理一下。

1、從數(shù)據(jù)庫(kù)拿出來(lái)的字典或者列表需要用json.dumps處理以下。

2、在模版上還要加safe過(guò)濾。

先在模版加safe

image.png

刷新一下,然后看一下script標(biāo)簽

image.png

尖括號(hào)這些東西已經(jīng)沒(méi)有了,接下來(lái)是json.dumps()。

image.png

刷新,還是報(bào)錯(cuò)。

是因?yàn)槲覀冊(cè)诖鏀?shù)據(jù)的時(shí)候有DateTimeField,對(duì)于這個(gè)dumps不能序列化,需要用到serializers和DjangoJSONEncoder,修改如下:

image.png

刷新

image.png

可以把數(shù)據(jù)處理一下只把需要的數(shù)據(jù)傳到j(luò)s,這里就不演示了。

三、mysql數(shù)據(jù)庫(kù)

1、查看當(dāng)前數(shù)據(jù)庫(kù)

django自帶的是sqlite數(shù)據(jù)庫(kù),如果不想用,可以換成mysql、mongodb或者其他想用的,這里以mysql為例。

首先看一下我們的數(shù)據(jù)庫(kù)結(jié)構(gòu)。

在項(xiàng)目根目錄下輸入

sqlite3

進(jìn)入sqlite shell,sqlite的命令是.開頭的

.help

可以看見所有命令

我們想看數(shù)據(jù)結(jié)構(gòu),用.databases,然后用.tables

image.png

可以看見里邊有一些自帶的表還有我們創(chuàng)建的myapp_article,支持sql命令,想看什么自己看吧。

2、切換mysql數(shù)據(jù)庫(kù)

mysql安裝過(guò)程就不說(shuō)了,直接開始。

首先新建一個(gè)數(shù)據(jù)庫(kù)test。

mysql

create database test;

show databases;

會(huì)發(fā)現(xiàn)又一個(gè)test的數(shù)據(jù)庫(kù),切換到這個(gè)test

use test;

show tables;

里邊是空的沒(méi)有表

用mysql我們需要安裝一個(gè)pymysql

pip3 install pymysql

安裝之后打開myproject目錄下的_init_.py,添加兩行代碼

import pymysql

pymysql.install_as_MySQLdb()

接下來(lái)打開myproject目錄下的settings.py,修改如下

image.png

保存之后會(huì)發(fā)現(xiàn)命令行提示我們要同步數(shù)據(jù)庫(kù)

image.png

同步數(shù)據(jù)庫(kù)

python manage.py makemigrations

python manage.py migrate

然后開啟服務(wù),刷新127.0.0.1:8000發(fā)現(xiàn)數(shù)據(jù)沒(méi)有了,打開后臺(tái)管理用之前的賬戶密碼登錄也不能登錄,說(shuō)明已經(jīng)切換到mysql,表都是空的,沒(méi)有數(shù)據(jù),我們看以下剛剛新建的test:

image.png

和之前我們看sqlite的表一樣,重復(fù)之前后臺(tái)管理有關(guān)的操作,發(fā)現(xiàn)沒(méi)有什么區(qū)別一樣可以操作數(shù)據(jù),切換完成。

總結(jié)

以上是生活随笔為你收集整理的django 不用自带的mysql_python笔记二 django自带后台管理系统、模版渲染以及使用mysql数据库...的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。