您當前的位置:首頁 > 舞蹈

Django - mysql 搭建資料管理系統 - 章節1

作者:由 佳欣 發表于 舞蹈時間:2020-01-20

最近舅舅讓我幫他的公司做一個資訊管理系統,要求簡單操作,能夠快速上手,同時要求伺服器儲存資料,每個人要有不同的許可權去訪問或者更改資料

於是我想到了我的一門大作業,用Django寫的資料管理系統,但是當時沒有要求用mysql,操作也比較簡單,但是這次,我就只能用mysql了。。。。

本節是我的第一節,因為還要準備過年,所以年後再更細節。

本篇有我安裝過程中遇到的各種坑,還有基本步驟和解決方法。

分為一下幾個部分

第一部分:

Django 初始化部分

第二部分

MySQL初始化部分

第三部分

結合部分

第一部分:安裝部分

Django 安裝

有兩種方法,第一種在本地安裝然後執行

sudo pip3 install Django==1。11。7 # 安裝

django-admin startproject HelloWorld #專案建立

python3 manage。py runserver #啟動服務

#python3 manage。py runserver [0。0。0。0:8000] #也可以這樣改變執行埠

但是你在用pycharm 編譯的時候可能會使用其他的環境,導致你安裝無效,你也可以使用本地環境(如何設定pycharm中使用的環境為本地的環境,而不用重新安裝包 - 慢行厚積 - 部落格園)

第二種方法:

直接在pycharm裡面new 一個 project 建立的時候選擇建立Django project 就好了,具體操作(CSDN-專業IT技術社群-登入)

2。 Django url: 在Django裡面資料流通方式是:

首先輸入你的ip和埠號還有你的html 他會去url。py中查詢符合條件的url,一旦查詢到符合條件的就會立馬呼叫它對應的函式,展示這個函式的返回值。

例如:在你輸入127。0。0。1:8000/hello的時候,他會到url。py中找到hello這裡,然後呼叫後面的view。hello函式,並顯示這個函式返回的值and這個函數里面可以有很多操作。(Django 第二課 2。【urlpatterns】)

from django。conf。urls import url

from django。contrib import admin

from 。 import view

urlpatterns = [

# when they find the first which match it is will use the html

url(r‘^admin/’, admin。site。urls),

# http://127。0。0。1:8000/admin 對應裡面的admin介面(預設是登陸介面)

url(‘hello’,view。hello),

# http://127。0。0。1:8000/hello 對應view 裡面的hello函式->返回 hello頁面

3。 建立app

Django 規定,如果要使用模型就必須建立一個app ,下面先建立一個app

django-admin startapp TestModel

位置在

Django - mysql 搭建資料管理系統 - 章節1

修改models。py中的內容

from django。db import models

class Test(models。Model):

name = models。CharField(max_length=20)

# 隨意命名,我只是這樣寫了

修改setting。py中新增一行 ‘TestModel‘

INSTALLED_APPS = [

’django。contrib。admin‘,

’django。contrib。auth‘,

’django。contrib。contenttypes‘,

’django。contrib。sessions‘,

’django。contrib。messages‘,

’django。contrib。staticfiles‘,

’TestModel‘

這裡的坑就是:如果你的pycharm使用的是虛擬環境(python3。7這類,但是你安裝在了本地,mac 預設環境,那麼你就會顯示各種bug)

第二部分:MySQL初始化部分。

這裡我們需要安裝

mysql + mysqlclient(進行python對mysql的操作)

mysql 下載地址(MySQL Community Downloads) 然後下載MySQL Community Server 和Download MySQL Workbench

這裡說一下 workbench不是必須的但是如果你不熟悉sql語句操作,他還是很方便的圖形化介面,進行資料視覺化修改等。

剛開始安裝workbranch遇到了這個啟動問題

Authentication plugin ’caching_sha2_password‘ cannot be loaded: dlopen(/usr/local/mysql/lib/plug

解決方案是重新initdatabase

2。下載mysqlclient

下載方法:sudo pip3 install mysqlclient

這裡有坑,如果你遇到了

Django - mysql 搭建資料管理系統 - 章節1

那麼你需要的就是執行

export PATH=$PATH:/usr/local/mysql/bin

或者把它放到使用者名稱下的 。/。bash_profile 檔案中

mysql 問題

Django - mysql 搭建資料管理系統 - 章節1

那麼就先用root登陸

Django - mysql 搭建資料管理系統 - 章節1

嘗試一個語句又報錯,要求重新設定密碼

Django - mysql 搭建資料管理系統 - 章節1

兩種解決方案,第二種對我work

Django - mysql 搭建資料管理系統 - 章節1

下面教程是sql基本教程,推薦w3school的教程

(https://www。w3school。com。cn/sql/sql_create_db。asp)

https://www。

runoob。com/sql/sql-tuto

rial。html

建立成功

Django - mysql 搭建資料管理系統 - 章節1

Django - mysql 搭建資料管理系統 - 章節1

下面說一點視覺化操作

Django - mysql 搭建資料管理系統 - 章節1

點選圓柱加號就可以建立資料庫

Django - mysql 搭建資料管理系統 - 章節1

之後可以點選table去建立table 也可以自己去import已經有的資料庫

Django - mysql 搭建資料管理系統 - 章節1

可以傻瓜建表,注意這裡面的引數,你需要選擇一個PK(primary key name)才能讓你的表不是read only (

https://

stackoverflow。com/quest

ions/10815029/mysql-workbench-edit-table-data-is-read-only

,至於什麼是PK可以看資料庫教程,唯一存在,像身份證號一樣。

Datatype varchar是預設的,就是什麼都可以,括號裡是最大長度,後面還有一堆引數,用來設計約束的

點選apply 會生成sql語句

Django - mysql 搭建資料管理系統 - 章節1

Django - mysql 搭建資料管理系統 - 章節1

查詢一下

Django - mysql 搭建資料管理系統 - 章節1

成功。現在就看如何用Django 去連結資料庫了

第三部分:Django 連結資料庫

下一個坑出現:

django

core

exceptions

ImproperlyConfigured

mysqlclient

1

3

13

or

newer

is

required

you

have

0

9

3

解決方法:

Django - mysql 搭建資料管理系統 - 章節1

點選最下面的連結然後進入檔案把報錯那行註釋掉就好,前面加一個pass

Django - mysql 搭建資料管理系統 - 章節1

下一步建立使用者

Django連線mysql資料庫登入Django後臺

預設Django使用的是sqllite3,mysqldb沒有支援python3版本的,可以使用pymysql代替mysqldb

1、在專案根目錄下__init__。py檔案中加入以下程式碼

import pymysql

pymysql。install_as_MySQLdb()

2、使用mysqlclient代替mysqldb(因為mysqldb已經過時了)

pip3 install mysqlclient

3。更改專案setting。py中對資料庫的配置

DATABASES = {

’default‘: {

’ENGINE‘: ’django。db。backends。mysql‘,

’NAME‘: ’庫名字‘,

’USER‘: ’連線使用者名稱‘,

’PASSWORD‘:’連線密碼‘,

’HOST‘:’連線地址‘,

’PORT‘:’資料庫埠號‘

}

}

4、初始化資料庫,建立相應的表

python3 manager。py migrate

生成相應表的資料庫:

5。 建立Django後臺登入使用者

python3 manage。py createsuperuser

#找找提示輸入使用者名稱密碼就可以了

Django - mysql 搭建資料管理系統 - 章節1

之後登陸admin介面

Django - mysql 搭建資料管理系統 - 章節1

輸入使用者名稱密碼就好啦

Django - mysql 搭建資料管理系統 - 章節1

之後就可以透過這個瀏覽器訪問對應的url網頁了

資料庫連線(

https://www。

runoob。com/django/djang

o-model。html

Django - mysql 搭建資料管理系統 - 章節1

加入test的code

# -*- coding: utf-8 -*-

from django。http import HttpResponse

from TestModel。models import Test

# 刪除操作

def testdb2(request):

test1 = Test(name=’runoob‘)

test1。save()

return HttpResponse(“

Add sucessfully!

”)

# 資料庫查詢

def testdb(request):

# 初始化

response = “”

response1 = “”

# 透過objects這個模型管理器的all()獲得所有資料行,相當於SQL中的SELECT * FROM

list = Test。objects。all()

# filter相當於SQL中的WHERE,可設定條件過濾結果

response2 = Test。objects。filter(id=1)

# 獲取單個物件

response3 = Test。objects。get(id=1)

# 限制返回的資料 相當於 SQL 中的 OFFSET 0 LIMIT 2;

Test。objects。order_by(’name‘)[0:2]

# 資料排序

Test。objects。order_by(“id”)

# 上面的方法可以連鎖使用

Test。objects。filter(name=“runoob”)。order_by(“id”)

# 輸出所有資料

for var in list:

response1 += var。name + “ ”

response = response1

return HttpResponse(“

” + response + “

”)

# 資料更新

def testdb(request):

# 修改其中一個id=1的name欄位,再save,相當於SQL中的UPDATE

test1 = Test。objects。get(id=1)

test1。name = ’Google‘

test1。save()

# 另外一種方式

# Test。objects。filter(id=1)。update(name=’Google‘)

# 修改所有的列

# Test。objects。all()。update(name=’Google‘)

return HttpResponse(“

修改成功

”)

# 資料庫刪除

def testdb(request):

# 刪除id=1的資料

test1 = Test。objects。get(id=1)

test1。delete()

# 另外一種方式

# Test。objects。filter(id=1)。delete()

# 刪除所有資料

# Test。objects。all()。delete()

return HttpResponse(“

刪除成功

”)

在url。py裡面加入這個函式的呼叫介面:

from django。conf。urls import url

from django。contrib import admin

from 。 import view,testdb

urlpatterns = [

# when they find the first which match it is will use the html

url(r’^admin/‘, admin。site。urls),

url(’hellos‘,view。hello),

url(r’^testdb$‘, testdb。testdb),

結果:

Django - mysql 搭建資料管理系統 - 章節1

然後看一下資料庫

新增成功啦

Django - mysql 搭建資料管理系統 - 章節1

關於刪除更新等都在上面連結裡就不說了。

其他的部分如何去進行資料庫設計&前端設計&登陸驗證在後面說

標簽: Django  test  objects  資料庫