django連接數(shù)據(jù)庫獲取數(shù)據(jù)的簡單步驟記錄
1、創(chuàng)建項目
執(zhí)行代碼
django-admin startproject myweb
2、創(chuàng)建應(yīng)用
python manage.py startapp myapp
3、運(yùn)行項目
python manage.py runserver
如果沒有加端口號就是默認(rèn)8080,可以自己加端口號,防止與其它項目的端口號重復(fù)導(dǎo)致不能運(yùn)行成功
python manage.py runserver 0.0.0.0:8080
端口號可以隨意取,只要不重復(fù)就行
4、連接數(shù)據(jù)庫

DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql',
'NAME': 'mydemo',
'USER': 'root',
'PASSWORD': '',
'HOST': 'localhost',
'PORT': '3306',
}
}
如果沒有安裝mysqlclient模塊執(zhí)行以下代碼進(jìn)行安裝
pip install mysqlclient
然后在目錄中創(chuàng)建模型

```python
from django.db import models
# Create your models here.
class Stu(models.Model):
'''自定義Stu表對應(yīng)的Model類'''
#定義屬性:默認(rèn)主鍵自增id字段可不寫
id = models.AutoField(primary_key=True)
name = models.CharField(max_length=16)
age = models.SmallIntegerField()
sex = models.CharField(max_length=1)
classid=models.CharField(max_length=8)
# 定義默認(rèn)輸出格式
def __str__(self):
return "%d:%s:%d:%s:%s"%(self.id,self.name,self.age,self.sex,self.classid)
# 自定義對應(yīng)的表名,默認(rèn)表名:myapp_stu
class Meta:
db_table="stu"
激活模型——把新增的應(yīng)用添加到模型中。
編輯myweb/settings.py文件,并將該虛線路徑添加到該INSTALLED_APPS設(shè)置。
INSTALLED_APPS = [
'django.contrib.admin' ,
'django.contrib.auth' ,
'django.contrib.contenttypes' ,
'django.contrib.sessions' ,
'django.contrib.messages' ,
'django.contrib.staticfiles' ,
'myapp.apps.MyappConfig', #或者直接寫 myapp
]
5、創(chuàng)建數(shù)據(jù)庫stu
使用Navicat數(shù)據(jù)庫,在數(shù)據(jù)庫中要創(chuàng)建數(shù)據(jù)庫myweb,創(chuàng)建表stu,自己根據(jù)model模型中的數(shù)據(jù)類型增加數(shù)據(jù)。


數(shù)據(jù)都要有單引號,否則會報錯

錯誤記錄
TypeError: connect() argument 3 must be str, not int
類型不匹配的問題,要把數(shù)據(jù)庫中字段的類型跟代碼中的類型相匹配。


RuntimeError: Model class myapp.models.Stu doesn’t declare an explicit app_label and isn’t in an app
沒有激活模型,原來我是寫成myphoto,不是myapp,所以會報錯。
6、應(yīng)用
# 文件:myapp/views.py 文件代碼
from django.shortcuts import render
from django.http import HttpResponse
from myapp.models import Stu
# Create your views here.
def index(request):
return HttpResponse("Hello Django!")
def stu(request):
#獲取所有stu表信息
lists = Stu.objects.all()
print(lists)
#獲取單條學(xué)生信息
print(Stu.objects.get(id=1))
return HttpResponse("ok")
配置stu函數(shù)的訪問路由
#在myapp/urls.py文件中配置
path('stu/', views.stu),
然后啟動服務(wù)
python manage.py runserver
在網(wǎng)頁中的路徑改為以下路徑
http://127.0.0.1:8088/myapp/stu/

cmd里有數(shù)據(jù)顯示

顯示數(shù)據(jù)庫中的數(shù)據(jù)

7、總結(jié)
簡易的一個獲取數(shù)據(jù)庫內(nèi)容的例子,最主要的是要自己先創(chuàng)建數(shù)據(jù)才能獲取到。
到此這篇關(guān)于django連接數(shù)據(jù)庫獲取數(shù)據(jù)的文章就介紹到這了,更多相關(guān)django連接數(shù)據(jù)庫獲取數(shù)據(jù)內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Python列表list操作相關(guān)知識小結(jié)
今天,本喵帶大家仔細(xì)溫習(xí)一下Python的列表,溫故而知新,不亦說乎,需要的朋友可以參考下2020-01-01
基于Flask實現(xiàn)一個智能的多語言Hello World服務(wù)器
這篇文章主要為大家詳細(xì)介紹了如何使用Flask框架創(chuàng)建一個智能的多語言Hello World服務(wù)器,能夠自動檢測訪問者的瀏覽器語言設(shè)置,需要的可以了解下2025-03-03
三步實現(xiàn)Django Paginator分頁的方法
這篇文章主要介紹了三步實現(xiàn)Django Paginator分頁的方法,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-06-06
Jmeter通過OS進(jìn)程取樣器調(diào)用Python腳本實現(xiàn)參數(shù)互傳
這篇文章主要介紹了Jmeter通過OS進(jìn)程取樣器調(diào)用Python腳本實現(xiàn)參數(shù)互傳,描述在cmd中調(diào)用上面的Python腳本并傳入兩個參數(shù)展開主題,具有一定的參考價值,需要的小伙伴可以參考一下2022-03-03

