Django數(shù)據(jù)庫(SQlite)基本入門使用教程
1:創(chuàng)建工程
django-admin startproject mysite
創(chuàng)建完成后,工程目錄結(jié)構(gòu)如下:

manage.py ----- Django項(xiàng)目里面的工具,通過它可以調(diào)用django shell和數(shù)據(jù)庫等。
settings.py ---- 包含了項(xiàng)目的默認(rèn)設(shè)置,包括數(shù)據(jù)庫信息,調(diào)試標(biāo)志以及其他一些工作的變量。
urls.py ----- 負(fù)責(zé)把URL模式映射到應(yīng)用程序。
2:創(chuàng)建blog應(yīng)用
python manage.py startapp blog
完成后,會在項(xiàng)目中生成一個(gè)blog的文件夾

3:數(shù)據(jù)庫操作
初始化數(shù)據(jù)庫:
python 自帶SQLite數(shù)據(jù)庫,Django支持各種主流的數(shù)據(jù)庫,這里我們首先使用SQLite。
如果使用其它數(shù)據(jù)庫請?jiān)趕ettings.py文件中設(shè)置。數(shù)據(jù)庫默認(rèn)的配置為:
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.sqlite3',
'NAME': os.path.join(BASE_DIR, 'db.sqlite3'),
}
}使用默認(rèn)的數(shù)據(jù)配置來初始化數(shù)據(jù)庫:
命令執(zhí)行完成后,會生成一些數(shù)據(jù)表:

Django自帶有一個(gè)WEB 后臺,下面創(chuàng)建WEB后臺的用戶名與密碼:
python manage.py createsuperuser
注意??:密碼不能與用戶名相似,密碼不能純數(shù)字 。

接下來我們使用上面創(chuàng)建的賬號密碼登錄后臺試試。要登錄后臺,必須在settings.py文件中將上面創(chuàng)建的APP也就是blog添加進(jìn)來:
INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'blog',
]注意后面必須要有個(gè)逗號!
啟動django容器:
python manage.py runserver
默認(rèn)使用的WEB地址為http://127.0.0.1,端口為8000,使用該地址與端口訪問首頁:

下面訪問django的后臺:http://127.0.0.1/admin

創(chuàng)建一張UseInfo表,并創(chuàng)建字段:
現(xiàn)在我們打開blog目錄下的models.py文件,這是我們定義blog數(shù)據(jù)結(jié)構(gòu)的地方。打開mysite/blog/models.py 文件進(jìn)行修改:
from django.db import models
# Create your models here.
class Demo(models.Model):
car_num = models.CharField(max_length=32)
park_name = models.CharField(max_length=32)
jinru_Date = models.CharField(max_length=32)
chuqu_Date = models.CharField(max_length=32)
time = models.CharField(max_length=32)命令行執(zhí)行:
python manage.py makemigrations
python manage.py migrate

從上圖中可以看出,Django默認(rèn)會以APP名為數(shù)據(jù)表前綴,以類名為數(shù)據(jù)表名!
創(chuàng)建的字段如下圖:

4.在blog_demo表中添加數(shù)據(jù):
Django是在views.py文件中,通過導(dǎo)入models.py文件來創(chuàng)建數(shù)據(jù)的:
from django.shortcuts import render
# Create your views here.
from blog import models # 導(dǎo)入blog模塊
from django.shortcuts import HttpResponse
def db_handle(request):
# 添加數(shù)據(jù)
models.Demo.objects.create(car_num='陜E-BV886', park_name='中醫(yī)院', jinru_Date='2022-02-05',
chuqu_Date='2022-02-06', time='1')
return HttpResponse('OK')下面我們配置路由,以便讓瀏覽器能夠訪問到views.py文件:
from blog import views
urlpatterns = [
path('admin/', admin.site.urls),
path(r'db_handle', views.db_handle),
]下面我們來訪問http://127.0.0.1/db_handle

查看數(shù)據(jù)庫是否創(chuàng)建成功:

上面就是創(chuàng)建表數(shù)據(jù),也可以通過字典的格式來創(chuàng)建表數(shù)據(jù):
def db_handle(request):
dic = {car_num='陜E-BV886', park_name='中醫(yī)院', jinru_Date='2022-02-05',chuqu_Date='2022-02-06', time='1'}
models.Demo.objects.create(**dic)
return HttpResponse('OK')刪除表數(shù)據(jù):
views.py文件如下:
def db_handle(request):
#刪除表數(shù)據(jù)
models.Demo.objects.filter(id=1).delete()
return HttpResponse('OK')操作方法同上,在瀏覽器中執(zhí)行一遍,數(shù)據(jù)中的id=1的數(shù)據(jù)即被刪除:

修改表數(shù)據(jù):
def db_handle(request):
# 修改表數(shù)據(jù)
models.Demo.objects.filter(id=2).update(time=18)
return HttpResponse('OK')數(shù)據(jù)的查詢:
為了讓查詢出來的數(shù)據(jù)更加直觀地顯示出來,這里我們將使用Django的模板功能,讓查詢出來的數(shù)據(jù)在WEB瀏覽器中展示出來
在templates目錄下新建一個(gè)t1.html的文件,內(nèi)容如下:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Django操作數(shù)據(jù)庫</title>
<link type="text/css" href="/static/base.css" rel="external nofollow" rel="external nofollow" rel="stylesheet" />
</head>
<body>
<table border="1">
<tr>
<th>車牌號</th>
<th>停車場名</th>
<th>入場時(shí)間</th>
<th>出場時(shí)間</th>
<th>停車時(shí)間</th>
</tr>
{% for item in li %}
<tr>
<td>{{ item.car_num }}</td>
<td>{{ item.park_name }}</td>
<td>{{ item.jinru_Date }}</td>
<td>{{ item.chuqu_Date }}</td>
<td>{{ item.time }}</td>
</tr>
{% endfor %}
</body>
</html>views.py文件查詢數(shù)據(jù),并指定調(diào)用的模板文件,內(nèi)容如下:
def db_handle(request):
user_list_obj = models.Demo.objects.all()
return render(request, 't1.html', {'li': user_list_obj})注意:由于這里是在工程下面的templates目錄下建立的模板,而不是在blog應(yīng)用中創(chuàng)建的模板,上面views.py文件中調(diào)用的t1.html模板,運(yùn)行時(shí)會出現(xiàn)找不到t1.html模板的錯(cuò)誤,為了能找到mysite/templates下的模板文件,我們還需要在settings.py文件配置模板的路徑:
TEMPLATES = [
{
'BACKEND': 'django.template.backends.django.DjangoTemplates',
'DIRS': [os.path.join(BASE_DIR, 'templates')], # 配置模板路徑
'APP_DIRS': True,
'OPTIONS': {
'context_processors': [
'django.template.context_processors.debug',
'django.template.context_processors.request',
'django.contrib.auth.context_processors.auth',
'django.contrib.messages.context_processors.messages',
],
},
},
]下面就可以在瀏覽器中查看:

引入JS,CSS等靜態(tài)文件:
在mysite目錄下新建一個(gè)static目錄,將JS,CSS文件都放在此目錄下!并在settings.py文件中指定static目錄:

STATIC_URL = '/static/'
STATICFILES_DIRS = (
os.path.join(BASE_DIR, 'static'),
)表單提交數(shù)據(jù):
在Django中要使用post方式提交表單,需要在settings.py配置文件中將下面一行的內(nèi)容給注釋掉:
# 'django.middleware.csrf.CsrfViewMiddleware',
提交表單(這里仍然使用了t1.html):
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Django操作數(shù)據(jù)庫</title>
<link type="text/css" href="/static/base.css" rel="external nofollow" rel="external nofollow" rel="stylesheet" />
</head>
<body>
<table border="1">
<tr>
<th>車牌號</th>
<th>停車場名</th>
<th>入場時(shí)間</th>
<th>出場時(shí)間</th>
<th>停車時(shí)間</th>
</tr>
{% for item in li %}
<tr>
<td>{{ item.car_num }}</td>
<td>{{ item.park_name }}</td>
<td>{{ item.jinru_Date }}</td>
<td>{{ item.chuqu_Date }}</td>
<td>{{ item.time }}</td>
</tr>
{% endfor %}
</table>
<form action="/db_handle" method="post">
<p><input name="car_num" /></p>
<p><input name="park_name" /></p>
<p><input name="jinru_Date" /></p>
<p><input name="chuqu_Date" /></p>
<p><input name="time" /></p>
<p><input type="submit" value="submit" /></p>
</form>
</body>
</html>寫入數(shù)據(jù)庫(views.py):
def db_handle(request):
if request.method == "POST":
models.Demo.objects.create(car_num=request.POST['car_num'],park_name=request.POST['park_name'],jinru_Date=request.POST['jinru_Date'],chuqu_Date=request.POST['chuqu_Date'],time=request.POST['time'])
user_list_obj = models.Demo.objects.all()
return render(request, 't1.html', {'li': user_list_obj})提交數(shù)據(jù)后,如下圖:



總結(jié)
到此這篇關(guān)于Django數(shù)據(jù)庫(SQlite)基本入門使用教程的文章就介紹到這了,更多相關(guān)Django數(shù)據(jù)庫SQlite使用內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
- Django把SQLite數(shù)據(jù)庫轉(zhuǎn)換為Mysql數(shù)據(jù)庫的過程
- django 將自帶的數(shù)據(jù)庫sqlite3改成mysql實(shí)例
- Django 創(chuàng)建后臺,配置sqlite3教程
- Django將默認(rèn)的SQLite更換為MySQL的實(shí)現(xiàn)
- DJango的創(chuàng)建和使用詳解(默認(rèn)數(shù)據(jù)庫sqlite3)
- django 連接數(shù)據(jù)庫 sqlite的例子
- django使用sqlite3統(tǒng)計(jì)前臺站點(diǎn)訪問數(shù)量示例
相關(guān)文章
使用python下載大型文件顯示進(jìn)度條和下載時(shí)間的操作代碼
大家都知道下載大型文件時(shí)存在一個(gè)問題,那就是內(nèi)存使用量迅速上升,可能會造成電腦卡死,所以我們需要換一個(gè)方式進(jìn)行下載,這篇文章主要介紹了使用python下載大型文件的方法顯示進(jìn)度條和下載時(shí)間,需要的朋友可以參考下2022-11-11
GitHub?AI編程工具copilot在Pycharm的應(yīng)用
最近聽說github出了一種最新的插件叫做copilot,這篇文章主要給大家介紹了關(guān)于GitHub?AI編程工具copilot在Pycharm的應(yīng)用,目前感覺確實(shí)不錯(cuò),建議大家也去使用,需要的朋友可以參考下2022-04-04
Python readline()和readlines()函數(shù)實(shí)現(xiàn)按行讀取文件
本文主要介紹了Python readline()和readlines()函數(shù)實(shí)現(xiàn)按行讀取文件,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2023-02-02
python數(shù)據(jù)挖掘使用Evidently創(chuàng)建機(jī)器學(xué)習(xí)模型儀表板
在本文中,我們將探索 Evidently 并創(chuàng)建交互式報(bào)告/儀表板。有需要的朋友歡迎大家收藏學(xué)習(xí),希望能夠有所幫助,祝大家多多進(jìn)步早日升職加薪2021-11-11
詳解pytest分布式執(zhí)行插件?pytest-xdist?的高級用法
這篇文章主要介紹了pytest分布式執(zhí)行插件?pytest-xdist?的高級用法,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2022-08-08
Python3+Pycharm+PyQt5環(huán)境搭建步驟圖文詳解
這篇文章主要介紹了Python3+Pycharm+PyQt5環(huán)境搭建步驟圖文詳解,本文給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2019-05-05
Python3 使用pillow庫生成隨機(jī)驗(yàn)證碼
這篇文章主要介紹了Python3 使用pillow庫生成隨機(jī)驗(yàn)證碼,需要的朋友可以參考下2019-08-08

