django 不用自带的mysql_python笔记二 django自带后台管理系统、模版渲染以及使用mysql数据库...
上一篇簡單的說了一下整體項目的搭建,但是這還不夠,一般完整的項目還要有很多東西,比如前端頁面有一些數據不是固定的,需要前后端交互,還需要后臺管理系統,有可能我還不想用自帶的sqlite,想用mysql。這一篇講一下后臺管理、模版渲染、以及怎么用mysql數據庫,前后端交互我會在另外一篇文章,前后端分離再說。
一、django自帶的后臺管理系統
1、建表
后臺管理系統數據庫是一定要用的,python已經幫我們做了很多東西,我們只需要調用就可以了,首先需要建表,打開myapp下models.py,添加以下內容
image.png
接下來需要同步數據庫,上一篇已經在搭建項目的時候說過了,這里重新說一下,只需要兩行命令。
image.png
這時候會發現根目錄下多了一個db.sqlite3的文件,打開是亂碼,沒錯這就是剛剛新建的表。。。以文本的形式存儲在根目錄下。
還需要一步操作,打開myapp目錄下的admin.py,添加如下內容,用后臺管理系統來管理剛創建的表。
image.png
2、后臺管理系統
django的后臺管理系統已經很完善了,我們需要做的就是創建一個賬號,登錄,操作,沒有其他了,不需要自己寫任何東西。
創建賬號
image.png
請忽略那幾行提示,密碼我用的是六個1,多么的貼心,給了我三行提示。
至此賬號已經創建好了,接下來就是打開后臺管理系統登錄。
相信在上一篇寫urls的時候都發現了有一個admin的默認路徑,那個就是后臺管理系統。
python manage.py runserver
在瀏覽器地址欄輸入http://127.0.0.1:8000/admin
image.png
輸入剛創建好的賬號和密碼登錄
image.png
這就是剛創建的表,點擊Add我們來添加一組數據。
image.png
image.png
這就是django自帶的后臺管理系統。
二、模版渲染
1、直接將數據渲染到頁面
有了數據就要顯示在前端,這就要用到模版渲染,上一篇已經說過怎么建模版,這里就不說了,主要說以下怎么渲染數據。
首先需要在渲染模版的時候把數據一起返回,打開myapp目錄下的views.py
image.png
templates目錄下的index.html需要修改如下
image.png
這里用到了django渲染模版的語法。
刷新瀏覽器
image.png
2、數據傳遞給js
有時候數據需要做一些處理再渲染到頁面,這就要先把數據給js,具體操作方法和直接渲染其實差不多。
在index.html里加上這句代碼
image.png
{{}}里邊的就是傳遞過來的數據,和直接渲染是一樣的,如果只是一個字符串或者數字,可以直接用{{}}包裹,寫到body里。
打開開發者模式,刷新瀏覽器。
Uncaught SyntaxError: Unexpected token &
是不是報錯了,這就對了。
看一下script標簽里是什么情況
image.png
說好的數據呢。。。
我們需要在數據傳過來之前處理一下。
1、從數據庫拿出來的字典或者列表需要用json.dumps處理以下。
2、在模版上還要加safe過濾。
先在模版加safe
image.png
刷新一下,然后看一下script標簽
image.png
尖括號這些東西已經沒有了,接下來是json.dumps()。
image.png
刷新,還是報錯。
是因為我們在存數據的時候有DateTimeField,對于這個dumps不能序列化,需要用到serializers和DjangoJSONEncoder,修改如下:
image.png
刷新
image.png
可以把數據處理一下只把需要的數據傳到js,這里就不演示了。
三、mysql數據庫
1、查看當前數據庫
django自帶的是sqlite數據庫,如果不想用,可以換成mysql、mongodb或者其他想用的,這里以mysql為例。
首先看一下我們的數據庫結構。
在項目根目錄下輸入
sqlite3
進入sqlite shell,sqlite的命令是.開頭的
.help
可以看見所有命令
我們想看數據結構,用.databases,然后用.tables
image.png
可以看見里邊有一些自帶的表還有我們創建的myapp_article,支持sql命令,想看什么自己看吧。
2、切換mysql數據庫
mysql安裝過程就不說了,直接開始。
首先新建一個數據庫test。
mysql
create database test;
show databases;
會發現又一個test的數據庫,切換到這個test
use test;
show tables;
里邊是空的沒有表
用mysql我們需要安裝一個pymysql
pip3 install pymysql
安裝之后打開myproject目錄下的_init_.py,添加兩行代碼
import pymysql
pymysql.install_as_MySQLdb()
接下來打開myproject目錄下的settings.py,修改如下
image.png
保存之后會發現命令行提示我們要同步數據庫
image.png
同步數據庫
python manage.py makemigrations
python manage.py migrate
然后開啟服務,刷新127.0.0.1:8000發現數據沒有了,打開后臺管理用之前的賬戶密碼登錄也不能登錄,說明已經切換到mysql,表都是空的,沒有數據,我們看以下剛剛新建的test:
image.png
和之前我們看sqlite的表一樣,重復之前后臺管理有關的操作,發現沒有什么區別一樣可以操作數據,切換完成。
總結
以上是生活随笔為你收集整理的django 不用自带的mysql_python笔记二 django自带后台管理系统、模版渲染以及使用mysql数据库...的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: pt1000温度对照表_温度传感器的常用
- 下一篇: bo sap 客户端_SAP BO 技术