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中的__future__模块
Apr 27 Python
利用Python如何生成随机密码
Apr 20 Python
Python使用matplotlib简单绘图示例
Feb 01 Python
对python PLT中的image和skimage处理图片方法详解
Jan 10 Python
django drf框架中的user验证以及JWT拓展的介绍
Aug 12 Python
Python Django中间件,中间件函数,全局异常处理操作示例
Nov 08 Python
Python序列类型的打包和解包实例
Dec 21 Python
python GUI库图形界面开发之PyQt5布局控件QHBoxLayout详细使用方法与实例
Mar 06 Python
关于keras.layers.Conv1D的kernel_size参数使用介绍
May 22 Python
PyQt5-QDateEdit的简单使用操作
Jul 12 Python
解决pycharm 格式报错tabs和space不一致问题
Feb 26 Python
粗暴解决CUDA out of memory的问题
May 22 Python
Python可视化神器pyecharts之绘制地理图表练习
Django中celery的使用项目实例
Python可视化神器pyecharts绘制地理图表
Python软件包安装的三种常见方法
Python+SeaTable实现计算两个日期间的工作日天数
Jul 07 #Python
Python实现数据的序列化操作详解
Jul 07 #Python
Python如何利用pandas读取csv数据并绘图
You might like
PHP 存储文本换行实现方法
2010/01/05 PHP
php学习笔记 数组遍历实现代码
2011/06/09 PHP
PHP判断一个字符串是否是回文字符串的方法
2015/03/23 PHP
详解PHP的Yii框架的运行机制及其路由功能
2016/03/17 PHP
PHP中overload与override的区别
2017/02/13 PHP
RR vs IO BO3 第一场2.13
2021/03/10 DOTA
javascript字典探测用户名工具
2006/10/05 Javascript
ext checkboxgroup 回填数据解决
2009/08/21 Javascript
30个精美的jQuery幻灯片效果插件和教程
2011/08/23 Javascript
我用的一些Node.js开发工具、开发包、框架等总结
2014/09/25 Javascript
利用Angularjs实现幻灯片效果
2016/09/07 Javascript
JS限制条件补全问题实例分析
2016/12/16 Javascript
Vuex模块化实现待办事项的状态管理
2017/03/15 Javascript
VUE实现一个分页组件的示例
2017/09/13 Javascript
jQuery基于cookie实现换肤功能实例
2017/10/14 jQuery
js循环map 获取所有的key和value的实现代码(json)
2018/05/09 Javascript
vue中监听路由参数的变化及方法
2019/12/06 Javascript
vue学习笔记之Vue中css动画原理简单示例
2020/02/29 Javascript
[02:17]TI4西雅图DOTA2前线报道 啸天mik夫妻档解说
2014/07/08 DOTA
Python字典操作简明总结
2015/04/13 Python
解决Python安装后pip不能用的问题
2018/06/12 Python
Tensorflow分类器项目自定义数据读入的实现
2019/02/05 Python
Django上使用数据可视化利器Bokeh解析
2019/07/31 Python
python实现截取屏幕保存文件,删除N天前截图的例子
2019/08/27 Python
基于python3监控服务器状态进行邮件报警
2019/10/19 Python
python自动化测试之异常及日志操作实例分析
2019/11/09 Python
canvas探照灯效果的示例代码
2018/11/30 HTML / CSS
英国领先的独立酒精饮料零售商:DrinkSupermarket
2021/01/13 全球购物
介绍一下grep命令的使用
2012/06/28 面试题
土建资料员岗位职责
2014/01/04 职场文书
大学生个人自荐信样本
2014/03/02 职场文书
党的群众路线学习笔记
2014/11/06 职场文书
校园广播站开场白
2015/06/01 职场文书
在人间读书笔记
2015/06/30 职场文书
python not运算符的实例用法
2021/06/30 Python
Golang 语言控制并发 Goroutine的方法
2021/06/30 Golang