溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點(diǎn)擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

怎么在Django項(xiàng)目中連通mysql

發(fā)布時(shí)間:2021-03-09 15:17:13 來源:億速云 閱讀:194 作者:Leah 欄目:開發(fā)技術(shù)

本篇文章為大家展示了怎么在Django項(xiàng)目中連通mysql,內(nèi)容簡明扼要并且容易理解,絕對能使你眼前一亮,通過這篇文章的詳細(xì)介紹希望你能有所收獲。

1:django-admin.py startproject 項(xiàng)目名

2:cd 項(xiàng)目名

3:修改setting.py

(1):ALLOWED_HOSTS = []=>ALLOWED_HOSTS = [“*”]

(2):LANGUAGE_CODE = 'en-us' => LANGUAGE_CODE = 'zh-hans'

(3):TIME_ZONE = 'UTC' => TIME_ZONE = 'Asia/Shanghai'

4:創(chuàng)建app

django-admin.py startproject app名

5:修改setting.py

INSTALLED_APPS數(shù)組增加=>'app名'

6:項(xiàng)目目錄下新增utils文件夾用來封裝多個(gè)app公共方法

7:app目錄下新增util文件用來封裝耽擱app通用方法

8:app目錄下新增view文件夾,里面存放各個(gè)頁面的邏輯代碼

9:app目錄下新增路由文件(urls.py),用來存放此app下的所有路由

格式:
	from django.urls import path
	from .views import wx_pay
	urlpatterns = [
		 path("test", wx_pay.wx_pay().test, name="test"), # 測試
	]

10:添加app路由至項(xiàng)目路由中;修改項(xiàng)目目錄下的urls.py

from django.contrib import admin
from django.urls import path, include
from H5 import urls as h6_urls
urlpatterns = [
		path('admin/', admin.site.urls),
	path("h6/", include(h6_urls))
]

至此django項(xiàng)目目錄結(jié)構(gòu)已經(jīng)配置結(jié)束了,后面即可進(jìn)入開發(fā)環(huán)節(jié)了。

開發(fā)時(shí)我們往往會(huì)用到數(shù)據(jù)庫;下面介紹下怎么配置數(shù)據(jù)庫

11:修改項(xiàng)目目錄下的setting.py

默認(rèn):
DATABASES = {
 'default': {
  'ENGINE': 'django.db.backends.sqlite3',
  'NAME': BASE_DIR / 'db.sqlite3',
 }
}
修改后:
DATABASES = {
 'default': {
 ‘ENGINE' :'django.db.backends.mysql',
 'NAME':'數(shù)據(jù)庫名(以下稱DATABASE1)',
 'USER':'用戶名',
 ‘PASSWORD':'數(shù)據(jù)庫密碼',
 'HOST':'ip地址',
 'PORT':'端口'
 }
}

12:打開數(shù)據(jù)庫新增上面配置的數(shù)據(jù)庫名(DATABASE1)

13:配置model,進(jìn)入app目錄的models.py文件

import time

from django.db import models

# Create your models here.

 class Test(models.Model):
  str = models.CharField("字符串", max_length=30, null=True, blank=True)
  num = models.IntegerField("數(shù)字", default=1, null=True, blank=True)
  create_time = models.DateTimeField("時(shí)間", default=time.strftime('%Y-%m-%d %H:%M:%S'), blank=True)

14:遷移數(shù)據(jù)至數(shù)據(jù)庫

python manage.py makemigrations

python manage.py migrate

15:這時(shí)候大概率會(huì)報(bào)錯(cuò)如下:

Traceback (most recent call last):
 中間省略若干
 "/Library/Frameworks/Python.framework/Versions/3.9/lib/python3.9/site-packages/MySQLdb/__init__.py", line 24, in <module>
  version_info, _mysql.version_info, _mysql.__file__
 
  NameError: name '_mysql' is not defined

此報(bào)錯(cuò)主要因?yàn)镸ysqldb 不兼容 python3.5 以后的版本

16:修改項(xiàng)目目錄下的__init_.py,增加以下代碼

import pymysql

pymysql.version_info = (1, 4, 13, "final", 0)

pymysql.install_as_MySQLdb()

上述內(nèi)容就是怎么在Django項(xiàng)目中連通mysql,你們學(xué)到知識或技能了嗎?如果還想學(xué)到更多技能或者豐富自己的知識儲備,歡迎關(guān)注億速云行業(yè)資訊頻道。

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI