Django数据库(SQlite)基本入门使用教程


Posted in Python onJuly 07, 2022

1:创建工程

django-admin startproject mysite

创建完成后,工程目录结构如下:

Django数据库(SQlite)基本入门使用教程

manage.py ----- Django项目里面的工具,通过它可以调用django shell和数据库等。

settings.py ---- 包含了项目的默认设置,包括数据库信息,调试标志以及其他一些工作的变量。

urls.py ----- 负责把URL模式映射到应用程序。

2:创建blog应用

python manage.py startapp blog

完成后,会在项目中生成一个blog的文件夹 

Django数据库(SQlite)基本入门使用教程

3:数据库操作 

初始化数据库:

python 自带SQLite数据库,Django支持各种主流的数据库,这里我们首先使用SQLite。

如果使用其它数据库请在settings.py文件中设置。数据库默认的配置为:

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.sqlite3',
        'NAME': os.path.join(BASE_DIR, 'db.sqlite3'),
    }
}

 使用默认的数据配置来初始化数据库:

命令执行完成后,会生成一些数据表:

Django数据库(SQlite)基本入门使用教程

 Django自带有一个WEB 后台,下面创建WEB后台的用户名与密码:

python manage.py createsuperuser

注意⚠️:密码不能与用户名相似,密码不能纯数字 。

Django数据库(SQlite)基本入门使用教程

 接下来我们使用上面创建的账号密码登录后台试试。要登录后台,必须在settings.py文件中将上面创建的APP也就是blog添加进来:

INSTALLED_APPS = [
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    'blog',
]

注意后面必须要有个逗号!

启动django容器:

python manage.py runserver

默认使用的WEB地址为http://127.0.0.1,端口为8000,使用该地址与端口访问首页:

Django数据库(SQlite)基本入门使用教程

 下面访问django的后台:http://127.0.0.1/admin

Django数据库(SQlite)基本入门使用教程

创建一张UseInfo表,并创建字段:

现在我们打开blog目录下的models.py文件,这是我们定义blog数据结构的地方。打开mysite/blog/models.py 文件进行修改:

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)

命令行执行:

python manage.py makemigrations
python manage.py migrate

Django数据库(SQlite)基本入门使用教程

从上图中可以看出,Django默认会以APP名为数据表前缀,以类名为数据表名!

创建的字段如下图:

Django数据库(SQlite)基本入门使用教程

4.在blog_demo表中添加数据:

Django是在views.py文件中,通过导入models.py文件来创建数据的:

from django.shortcuts import render
 
# Create your views here.
 
from blog import models  # 导入blog模块
from django.shortcuts import HttpResponse
 
def db_handle(request):
    # 添加数据
    models.Demo.objects.create(car_num='陕E-BV886', park_name='中医院', 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

Django数据库(SQlite)基本入门使用教程

查看数据库是否创建成功:

Django数据库(SQlite)基本入门使用教程

 上面就是创建表数据,也可以通过字典的格式来创建表数据:

def db_handle(request):
    dic = {car_num='陕E-BV886', park_name='中医院', jinru_Date='2022-02-05',chuqu_Date='2022-02-06', time='1'}
    models.Demo.objects.create(**dic)
    return HttpResponse('OK')

删除表数据:

views.py文件如下:

def db_handle(request):
 
    #删除表数据
    models.Demo.objects.filter(id=1).delete()
    return HttpResponse('OK')

 操作方法同上,在浏览器中执行一遍,数据中的id=1的数据即被删除:

Django数据库(SQlite)基本入门使用教程

修改表数据: 

def db_handle(request):
    # 修改表数据
    models.Demo.objects.filter(id=2).update(time=18)  
    return HttpResponse('OK')

数据的查询:

为了让查询出来的数据更加直观地显示出来,这里我们将使用Django的模板功能,让查询出来的数据在WEB浏览器中展示出来

在templates目录下新建一个t1.html的文件,内容如下:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Django操作数据库</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>入场时间</th>
            <th>出场时间</th>
            <th>停车时间</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文件查询数据,并指定调用的模板文件,内容如下:

def db_handle(request):
        user_list_obj = models.Demo.objects.all()
        return render(request, 't1.html', {'li': user_list_obj})

注意:由于这里是在工程下面的templates目录下建立的模板,而不是在blog应用中创建的模板,上面views.py文件中调用的t1.html模板,运行时会出现找不到t1.html模板的错误,为了能找到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',
            ],
        },
    },
]

下面就可以在浏览器中查看:

Django数据库(SQlite)基本入门使用教程

引入JS,CSS等静态文件:

在mysite目录下新建一个static目录,将JS,CSS文件都放在此目录下!并在settings.py文件中指定static目录:

Django数据库(SQlite)基本入门使用教程

STATIC_URL = '/static/'
STATICFILES_DIRS = (
    os.path.join(BASE_DIR, 'static'),
)

表单提交数据:

在Django中要使用post方式提交表单,需要在settings.py配置文件中将下面一行的内容给注释掉:

# 'django.middleware.csrf.CsrfViewMiddleware',

提交表单(这里仍然使用了t1.html):

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Django操作数据库</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>入场时间</th>
            <th>出场时间</th>
            <th>停车时间</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>

写入数据库(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})

提交数据后,如下图:

Django数据库(SQlite)基本入门使用教程

Django数据库(SQlite)基本入门使用教程

Django数据库(SQlite)基本入门使用教程

总结

到此这篇关于Django数据库(SQlite)基本入门使用教程的文章就介绍到这了,更多相关Django数据库SQlite使用内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!


Tags in this post...

Python 相关文章推荐
python中的实例方法、静态方法、类方法、类变量和实例变量浅析
Apr 26 Python
Tornado服务器中绑定域名、虚拟主机的方法
Aug 22 Python
Python写的服务监控程序实例
Jan 31 Python
Python中使用pprint函数进行格式化输出的教程
Apr 07 Python
在Python程序中进行文件读取和写入操作的教程
Apr 28 Python
用python制作游戏外挂
Jan 04 Python
Django中数据库的数据关系:一对一,一对多,多对多
Oct 21 Python
python爬虫基础教程:requests库(二)代码实例
Apr 09 Python
如何分离django中的媒体、静态文件和网页
Nov 12 Python
使用Python测试Ping主机IP和某端口是否开放的实例
Dec 17 Python
使用keras实现Precise, Recall, F1-socre方式
Jun 15 Python
Python可视化神器pyecharts之绘制地理图表练习
Django中celery的使用项目实例
Python可视化神器pyecharts绘制地理图表
Python软件包安装的三种常见方法
Python+SeaTable实现计算两个日期间的工作日天数
Jul 07 #Python
Python实现数据的序列化操作详解
Jul 07 #Python
Python如何利用pandas读取csv数据并绘图
You might like
全国FM电台频率大全 - 15 山东省
2020/03/11 无线电
关于IIS php调用com组件的权限问题
2012/01/11 PHP
php 广告点击统计代码(php+mysql)
2018/02/21 PHP
JS 非图片动态loading效果实现代码
2010/04/09 Javascript
Javascript拓展String方法小结
2013/07/08 Javascript
用nodejs实现PHP的print_r函数代码
2014/03/14 NodeJs
Javascript 中创建自定义对象的方法汇总
2014/12/04 Javascript
Bootstrap每天必学之栅格系统(布局)
2015/11/25 Javascript
JS生成不重复的随机数组的简单实例
2016/07/10 Javascript
jquery easyui DataGrid简单示例
2017/01/23 Javascript
jQuery实现的淡入淡出与滑入滑出效果示例
2018/04/18 jQuery
Vue实现6位数密码效果
2018/08/18 Javascript
jQuery中each遍历的三种方法实例分析
2018/09/07 jQuery
Node.js中的不安全跳转如何防御详解
2018/10/21 Javascript
js实现整体缩放页面适配移动端
2020/03/31 Javascript
微信小程序纯文本实现@功能
2020/04/08 Javascript
python中dir函数用法分析
2015/04/17 Python
python的Crypto模块实现AES加密实例代码
2018/01/22 Python
Python pymongo模块用法示例
2018/03/31 Python
ubuntu系统下使用pm2设置nodejs开机自启动的方法
2018/05/12 NodeJs
django 自定义过滤器的实现
2019/02/26 Python
python和php哪个更适合写爬虫
2020/06/22 Python
使用Python pip怎么升级pip
2020/08/11 Python
html5 迷宫游戏(碰撞检测)实例一
2013/07/25 HTML / CSS
html2canvas生成清晰的图片实现打印的示例代码
2019/09/30 HTML / CSS
html5 拖拽及用 js 实现拖拽功能的示例代码
2020/10/23 HTML / CSS
史泰博(Staples)中国官方网站:办公用品一站式采购
2016/09/05 全球购物
澳大利亚领先的运动鞋商店:Hype DC
2018/03/31 全球购物
IWOOT美国:新奇的小玩意
2018/04/27 全球购物
影视制作岗位职责
2013/12/04 职场文书
好邻里事迹材料
2014/01/16 职场文书
超市开学活动方案
2014/03/01 职场文书
服装设计专业自荐信
2014/06/17 职场文书
2014乡镇干部纪律作风整顿思想汇报
2014/09/13 职场文书
县委班子四风对照检查材料思想汇报
2014/09/29 职场文书
财务工作失误检讨书
2015/02/19 职场文书