pt24django教程

这篇具有很好参考价值的文章主要介绍了pt24django教程。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

静态文件访问

不能与服务器端做动态交互的文件都是静态文件,如: 图片,css,js,音频,视频,html文件(部分)

静态文件配置

在 settings.py 中配置一下两项内容:

STATIC_URL

静态文件的访问路径,通过哪个url地址找静态文件 ,STATIC_URL = ‘/static/’

  • 指定访问静态文件时是需要通过 /static/xxx或 127.0.0.1:8000/static/xxx
STATICFILES_DIRS

静态文件的在服务器端的存储位置

配置访问静态文件

1、目录、setting.py配置

# file: setting.py
# 静态文件的访问路径
STATIC_URL = '/static/'
# 静态文件的存储路径
STATICFILES_DIRS = (os.path.join(BASE_DIR, 'static'),)


[root@vm mysite2]# ls
db.sqlite3  manage.py  mysite2  static  templates

[root@vm mysite2]# mkdir -p static/img

使用静态文件的访问路径进行访问,访问路径: STATIC_URL = ‘/static/’

<img src="/static/img/bizhi.jpeg">
<img src="http://127.0.0.1:8000/static/img/bizhi.jpeg">

2、路由配置

# urls.py
    path('test_static',views.test_static),
    
# views.py  
def test_static(request):
    return render(request, 'test_static.html')

# templates/test_static.html
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>静态文件的演示</title>
</head>
<body>
<img src="/static/img/bizhi.jpeg" width="300 px" height="150 px">
<img src="http://192.168.1.11:8000/static/img/bizhi.jpeg" width="300 px" height="150 px">
</body>
</html>

通过 {% static %}标签访问静态文件 了解

  • {% static %} 表示的就是静态文件访问路径
  1. 加载 static {% load static %}
  2. 使用静态资源时
    • 语法:{% static '静态资源路径' %}
    • 示例: <img src="{% static 'images/lena.jpg' %}">

Django中的应用 - app

应用在Django项目中是一个独立的业务模块,可以包含自己的路由、视图、模板、模型

创建、注册应用app

# 创建应用文件夹
[root@vm mysite2]# python3 manage.py startapp music
/root/mysite2

#在settings.py里注册应用
[root@vm mysite2]# vi mysite2/settings.py
 INSTALLED_APPS = [
     # ....
     'user',  #用户信息模块
     'music',  #音乐模块
 ]

应用的结构

[root@vm mysite2]# ls music/
admin.py    #应用的后台管理配置文件  
apps.py     #应用的属性配置文件
__init__.py #应用子包的初始化文件  
migrations  #文件夹,保存数据迁移的中间文件,不会动
models.py   #与数据库相关的模型映射类文件
__pycache__  
tests.py    #应用的单元测试文件
views.py    #定义视图处理函数的文件

应用的分布式路由

Django中,主路由配置文件(urls.py)可以不处理用户具体路由,主路由配置文件的可以做请求的分发(分布式请求处理)。具体的请求可以由各自的应用来进行处理

include 函数

用于分发将当前路由转到各个应用的路由配置文件的 urlpatterns 进行分布式处理

函数格式 include(‘app命字.url模块名’),子urls模块文件件里必须有urlpatterns 列表

同名文件冲突问题
#主urls.py
from django.conf.urls import include

    # 分布式路由,将path为music/xxx的路由,交给music下的urls去处理
    path('music/',include('music.urls')),
    
# music下的urls    
from django.urls import path
from . import views

urlpatterns = [
    # http://127.0.0.1:8000/music/index
    path('index', views.index_view),
]

# music下的views.py
from django.shortcuts import render

def index_view(request):
    return render(request, 'index.html')

# 主应用目录下的templates/index.html
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
<h3>这是主目录下的Index页面</h3>
</body>
</html>

# music应用下templates/index.html
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
<h3>这是music应用下的Index页面</h3>
</body>
</html>

# http://192.168.1.11:8000/music/index   # 这是主目录下的Index页面,APP的未返回

更改下返回的文件名

# music下的views.py
from django.shortcuts import render

def index_view(request):
    return render(request, 'index1.html')
    
# music应用下templates/index.html改成index1.html 
# http://192.168.1.11:8000/music/index  #这是music应用下的Index页面,主目录没有
应用的templates模板总结
应用内部可以配置模板目录
1,应用下手动创建 templates 文件夹
2,settings.py中确认 TEMPLATE 配置项中 的 'APP_DIRS' 值
   例如 : 'APP_DIRS': True

#应用下templates 和 外层templates 都存在时,django得查找模板规则
1,优先查找外层templates目录下的模板,再查找APP的
2,按INSTALLED_APPS配置下的 应用顺序 从上到下逐层查找
#主 settings.py
TEMPLATES = [
    {
        'BACKEND': 'django.template.backends.django.DjangoTemplates',
        'DIRS': [os.path.join(BASE_DIR, 'templates')],  #1、先找主的
        'APP_DIRS': True,   #True,打开APP查找。    2、再找APP的

INSTALLED_APPS = [
...
    'music',   # 3、APP从上到下,找到就返回
]
解决冲突方案
#在应用的templates,先创建与应用同名的子目录,然后在子目录下添加模板文件。 "应用名/模板名.html" 
[root@vm music]# mkdir templates/music  #templates创建同app同名的目录
[root@vm music]# mv templates/index1.html templates/music/index.html

# music下的views.py
from django.shortcuts import render

def index_view(request):
    return render(request, 'music/index.html')
    
    
http://192.168.1.11:8000/music/index  #这是music应用下的Index页面    

练习:

练习:再创建一个user应用,并注册。user应用下,也创建一个index.html页面。
     "user/index"路由请求,在视图函数返回页面时,使用自己的index页面。
     url:   index,返回主目录的index.html
     url:music/index , 返回music应用下的index.html
     url:user/index,返回user应用下的index.html
# 1、创建应用文件夹
[root@vm mysite2]# python3 manage.py startapp  user  
/root/mysite2

# 2、在settings.py里注册应用
[root@vm mysite2]# vi mysite2/settings.py
 INSTALLED_APPS = [
     ....
     'user',  #用户信息模块
 ]
# 3、创建分布式路由
[root@vm mysite2]# vi mysite2/urls.py
...
    path('user/',include('user.urls')),

# 4、创建子路由
[root@vm mysite2]# vi user/urls.py
from django.urls import path
from . import views

urlpatterns = [
    path('index', views.index_view),
]

# 5、创建子view
[root@vm mysite2]# vi user/views.py
...
def index_view(request):
    return render(request, 'user/index.html')

# 6、 创建子templates/user目录  index文件
[root@vm mysite2]# mkdir -p user/templates/user
[root@vm mysite2]# vi user/templates/user/index.html
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
<h3>这是user应用下的Index页面</h3>
</body>
</html>

#反应略慢,别搞那么快。
# http://192.168.1.11:8000/user/index   # 这是user应用下的Index页面

模型层

Django下配置使用 mysql 数据库

[root@vm mysite2]# apt-get  install python3-dev default-libmysqlclient-dev   #ubuntu
[root@vm mysite2]# yum install python3-devel mysql-devel gcc #centos


[root@vm mysite2]# yum -y install mariadb-server  mariadb-client
[root@vm mysite2]# systemctl enable mariadb --now
[root@vm mysite2]# mysql
UPDATE mysql.user SET password = PASSWORD('123456') WHERE user = 'root';
FLUSH PRIVILEGES;
exit
[root@vm mysite2]# pip3 install --upgrade pip
[root@vm mysite2]# pip3 install mysqlclient

创建 和 配置数据库

[root@vm mysite2]# mysql -uroot -p123456
> create database mysite2 default charset utf8 ;
> use mysite2;
数据库的配置为mysql

sqlite 数据库配置

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

mysql 数据库配置

DATABASES = {
    'default' : {
        'ENGINE': 'django.db.backends.mysql',
        'NAME': 'mysite2',
        'USER': 'root',
        'PASSWORD': '123456',
        'HOST': '127.0.0.1',
        'PORT': 3306,
    }
}

"""  数据库的后端引擎  
'django.db.backends.mysql'
'django.db.backends.sqlite3'
'django.db.backends.oracle'
'django.db.backends.postgresql'"""

模型(Models)

模型是一个Python类,它是由django.db.models.Model派生出的子类。
    - 一个模型类代表数据库中的一张数据表
    - 模型类中每一个类属性都代表数据库中的一个字段。
    - 模型是数据交互的接口,是表示和操作数据库的方法和方式

Django 的 ORM框架

ORM(Object Relational Mapping)即对象关系映射,它是一种程序技术,它允许你使用类和对象对数据库进行操作,从而避免通过SQL语句操作数据库

ORM框架的作用

1. 建立模型类和表之间的对应关系,允许我们通过面向对象的方式来操作数据库。
2. 根据设计的模型类生成数据库中的表格。
3. 通过简单的配置就可以进行数据库的切换。
ORM 好处:
    1. 只需要面向对象编程, 不需要面向数据库编写代码.
       - 对数据库的操作都转化成对类属性和方法的操作.
       - 不用编写各种数据库的sql语句.
    2. 实现了数据模型与数据库的解耦, 屏蔽了不同数据库操作上的差异.
       - 不在关注用的是mysql、oracle...等数据库的内部细节.
       - 通过简单的配置就可以轻松更换数据库, 而不需要修改代码.

ORM 缺点
      1. 对于复杂业务,使用成本较高
      2. 性能损耗,根据对象的操作转换成SQL语句,再根据查询的结果转化成对象, 在映射过程中有性能损失.
      
ORM 映射示意:
    类   ---> 数据表  
    对象 ---> 数据行
    属性 ---> 字段

模型类Models 创建

模型类需继承自django.db.models.Model

Models的语法规范

from django.db import models
class 模型类名(models.Model):
    字段名 = models.字段类型(字段选项)
    
""" 模型类名是数据表名的一部分,建议类名首字母大写
    字段名又是当前类的类属性名,此名称将作为数据表的字段名
    字段类型用来映射到数据表中的字段的类型
    字段选项为这些字段提供附加的参数信息   """ 
模型示例

此示例为添加一个 bookstore_book 数据表来存放图书馆中书目信息

添加一个 bookstore 的 app

[root@vm mysite2]# python3 manage.py startapp bookstore
[root@vm mysite2]# vi mysite2/settings.py
# file : setting.py  注册app
INSTALLED_APPS = [
    ...
    'bookstore',
]

添加模型类

# file : bookstore/models.py
from django.db import models

class Book(models.Model): 
    title = models.CharField("书名", max_length=50, default='')
    price = models.DecimalField('定价', max_digits=7, decimal_places=2, default=0.0)

数据库的迁移

迁移是Django同步您对模型所做更改(添加字段,删除模型等) 到您的数据库模式的方式,步骤如下:

1、生成或更新迁移文件
将每个应用下的models.py文件生成一个中间文件,并保存在migrations文件夹中

[root@vm mysite2]# python3 manage.py makemigrations
/root/mysite2
Migrations for 'bookstore':
  bookstore/migrations/0001_initial.py
    - Create model Book

2、执行迁移脚本程序

执行迁移程序实现迁移。将每个应用下的migrations目录中的中间文件同步回数据库。

[root@vm mysite2]# python3 manage.py migrate
Running migrations:
...
  Applying sessions.0001_initial... OK  #看下数据库

**注意:**每次修改完模型类再对服务程序运行之前都需要做以上两步迁移操作

[root@vm mysite2]# mysql -uroot -p123456 -e "use mysite2;show tables;"
+----------------------------+
| Tables_in_mysite2          |
+----------------------------+
| auth_group                 |
| auth_group_permissions     |
| auth_permission            |
| auth_user                  |
| auth_user_groups           |
| auth_user_user_permissions |
| bookstore_book             |
| django_admin_log           |
| django_content_type        |
| django_migrations          |
| django_session             |
+----------------------------+
[root@vm mysite2]# mysql -uroot -p123456 -e "desc mysite2.bookstore_book;"
+-------+--------------+------+-----+---------+----------------+
| Field | Type         | Null | Key | Default | Extra          |
+-------+--------------+------+-----+---------+----------------+
| id    | int(11)      | NO   | PRI | NULL    | auto_increment |
| title | varchar(50)  | NO   |     | NULL    |                |
| price | decimal(7,2) | NO   |     | NULL    |                |
+-------+--------------+------+-----+---------+----------------+
字段类型

参考文档 https://docs.djangoproject.com/en/2.2/ref/models/fields/#field-types

BooleanField()
   - 数据库类型:tinyint(1)
   - 编程语言中:使用TrueFalse来表示值
   - 在数据库中:使用10来表示具体的值

CharField()
   - 数据库类型:varchar
   - 注意:
     - 必须要指定max_length参数值

DateField()
   - 数据库类型:date
   - 作用:表示日期
   - 参数:
     - auto_now: 每次保存对象时,自动设置该字段为当前时间(取值:True/False)- auto_now_add: 当对象第一次被创建时自动设置当前时间(取值:True/False)- default: 设置当前时间(取值:字符串格式时间如: '2019-6-1')- 以上三个参数只能多选一

DateTimeField()
   - 数据库类型:datetime(6)
   - 作用:表示日期和时间
   - 参数同DateField

DecimalField()
   - 数据库类型:decimal(x,y)
   - 编程语言中:使用小数表示该列的值
   - 在数据库中:使用小数
   - 参数:
     - max_digits: 位数总数,包括小数点后的位数。 该值必须大于等于decimal_places.
     - decimal_places: 小数点后的数字数量
   - 示例:  money=models.DecimalField(
           max_digits=7,
           decimal_places=2,
           default=0.0)

FloatField()
   - 数据库类型:double
   - 编程语言中和数据库中都使用小数表示值

EmailField()
   - 数据库类型:varchar
   - 编程语言和数据库中使用字符串

IntegerField()
   - 数据库类型:int
   - 编程语言和数据库中使用整数

URLField()
   - 数据库类型:varchar(200)
   - 编程语言和数据库中使用字符串

ImageField()
    - 数据库类型:varchar(100)
    - 作用:在数据库中为了保存图片的路径
    - 编程语言和数据库中使用字符串

TextField()
    - 数据库类型:longtext
    - 作用:表示不定长的字符数据
字段选项

文档参见https://docs.djangoproject.com/en/2.2/ref/models/fields/#field-options

指定创建的列的额外的信息,允许出现多个字段选项,多个选项之间使用,隔开

1. primary_key
   - 如果设置为True,表示该列为主键,如果指定一个字段为主键,则此数库表不会创建id字段
2. blank
   - 设置为True时,字段可以为空。设置为False时,字段是必须填写的。
3. null
   - 如果设置为True,表示该列值允许为空。
   - 默认为False,如果此选项为False建议加入default选项来设置默认值
4. default
   - 设置所在列的默认值,如果字段选项null=False建议添加此项
5. db_index
   - 如果设置为True,表示为该列增加索引
6. unique
   - 如果设置为True,表示该字段在数据库中的值必须是唯一(不能重复出现的)
7. db_column
   - 指定列的名称,如果不指定的话则采用属性名作为列名
8. verbose_name
   - 设置此字段在admin界面上的显示名称。

示例:

# 创建一个属性,表示用户名称,长度30个字符,必须是唯一的,不能为空,添加索引
name = models.CharField(max_length=30, unique=True, null=False, db_index=True)
Meta内部类

使用内部 Meta类 来给模型赋予属性,Meta类下有很多内建的类属性,可对模型类做一些控制、

示例:

# file : bookstore/models.py
from django.db import models

class Book(models.Model): 
    title = models.CharField("书名", max_length=50, default='')
    price = models.DecimalField('定价', max_digits=7, decimal_places=2, default=0.0)
    class Meta:
        db_table = 'book'  #可改变当前模型类对应的表名
数据库迁移的错误处理方法
# file : bookstore/models.py   #新增一行
from django.db import models

class Book(models.Model): 
...
    # 新增属性/字段 (要有默认值)
    market_price = models.DecimalField("零售价",
                                       max_digits=5,
                                       decimal_places=2,
                                       default=0.0)

    pub = models.CharField("出版社", max_length=50,
                           default="")


$ python3 manage.py makemigrations

You are trying to add a non-nullable field 'des' to book without a default; we can't do that (the database needs something to populate existing rows).
Please select a fix:
 1) Provide a one-off default now (will be set on all existing rows with a null value for this column)
 2) Quit, and let me add a default in models.py
Select an option:  2  退出

错误原因

  • 当对模型类新添加一个字段时可出现该错误
  • 原理是 添加新字段后,数据库不知道原来已有数据对于新建字段该如何赋值,所以新增字段时,务必要添加default默认值。

处理方法:

  1. 选择1 则会进入到shell中,手动输入一个默认值,不建议
  2. 退出当前生成迁移文件的过程,自己去修改models.py, 新增加一个default=XXX 的缺省值(推荐使用)
Select an option:  2  退出

修改下。重新makemigrations
# file : bookstore/models.py   #新增一行
from django.db import models

class Book(models.Model): 
...
    # 新增属性/字段 (要有默认值)
    market_price = models.DecimalField("零售价", max_digits=5,decimal_places=2,default=0.0)

    pub = models.CharField("出版社",max_length=50,default="")
    
[root@vm mysite2]# python3 manage.py makemigrations
[root@vm mysite2]# python3 manage.py migrate
数据库的迁移文件混乱的解决办法
1. 删除 所有 migrations 里所有的 000?_XXXX.py (`__init__.py`除外)
2. 删除 数据库,要先备份一下
   - sql> drop database mywebdb;
3. 重新创建 数据库
   - sql> create datebase mywebdb default charset...;
4. 重新生成migrations里所有的 000?_XXXX.py
   - python3 manage.py makemigrations
5. 重新更新数据库
   - python3 manage.py migrate

模型层的基本操作

基本操作包括增删改查操作,即(CRUD操作),CRUD是指在做计算处理时的增加(Create)、读取查询(Read)、更新(Update)和删除(Delete)

管理器对象

每个继承自 models.Model 的模型类,都会有一个 objects 对象被同样继承下来。这个对象叫管理器对象

数据库的增删改查可以通过模型的管理器实现

class MyModel(models.Model):
    ...
MyModel.objects.create(...) # objects 是管理器对象

创建数据对象

Django 使用一种直观的方式把数据库表中的数据表示成Python 对象,创建数据中每一条记录就是创建一个数据对象

  1. MyModel.objects.create(属性1=值1, 属性2=值1,…)

    • 成功: 返回创建好的实体对象,失败: 抛出异常
  2. 创建 MyModel 实例对象,并调用 save() 进行保存 (不推荐)

    obj = MyModel(属性=,属性=)
    obj.属性=值
    obj.save()
    

使用Django shell

  • 在Django提供了一个交互式的操作项目叫 Django Shell 它能够在交互模式用项目工程的代码执行相应的操作
  • 利用 Django Shell 可以代替编写View的代码来进行直接操作
  • 在Django Shell 下只能进行简单的操作,不能运行远程调式

启动使用方式:

[root@vm ~]# cd mysite2/
[root@vm mysite2]# python3 manage.py shell
...
>>> from bookstore.models import Book
>>> Book.objects.create(title='java',price=50)
<Book: Book object (1)> #返回对象
# 数据库验证
[root@vm ~]# mysql -uroot -p123456 -e "select * from mysite2.bookstore_book"
+----+-------+-------+--------------+-----+
| id | title | price | market_price | pub |
+----+-------+-------+--------------+-----+
|  1 | java  | 50.00 |         0.00 |     |
+----+-------+-------+--------------+-----+


[root@vm mysite2]# python3 manage.py shell
...
>>> from bookstore.models import Book
>>> Book.objects.create(title='python',price=50,pub='清华')
<Book: Book object (2)>
>>> Book.objects.create(title='c++',price=100,pub='清华')
<Book: Book object (3)>
>>> Book.objects.create(title='xiyou',price=700,pub='beida')
<Book: Book object (4)>
>>> Book.objects.create(title='honglou',price=90,pub='beida')


文章来源地址https://www.toymoban.com/news/detail-733377.html

到了这里,关于pt24django教程的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【教程】navicat配合HTTP通道远程连接SQLite数据库

    🍊缘由 好奇的我想查看服务器上宝塔面板的SQLite数据库 久别一月,特来水文。起因是我看到 服务器上搭建的宝塔面板 ,好奇其中使用的 SQLite数据库 ,想用 navicat远程连接 看一下,奈何不会玩,特来写一篇文章解析一下,如何通过Navicat Premium工具下 ntunnel_sqlite.php 工具 配合

    2024年02月04日
    浏览(54)
  • MS Access 教程之如何将 MDB 文件转换为 SQLite 数据库

    那么如何将 MDB 文件转换为 SQLite 数据库呢?归根结底,最简单的方法是创建一个 MDB 数据库,即半自动转换其他 MDB 文件。我想要一个类似这样的面具: 但在此之前,我必须配置 PC。我从下载 SQLite 开始。我可以使用sqlite.org上的预编译文件快速完成此操作。对于 Windows,我下

    2024年02月05日
    浏览(37)
  • Unity3D 连接 SQLite 作为数据库基础功能【详细图文教程】

    轻量级: SQLite是一个嵌入式数据库引擎,它的库文件非常小巧,没有独立的服务器进程,适用于嵌入到其他应用程序中,对于轻量级的项目或移动应用程序非常适用。 零配置: 使用SQLite不需要进行复杂的配置或管理,你只需要简单地创建一个文件即可开始使用,减少了额外的

    2024年02月10日
    浏览(34)
  • 利用 pt-archiver 实现数据库归档功能

    一个完整的项目,除了开发阶段,还有运维移交阶段,运维移交往往需要考虑数据库后续的归档机制,比如:将1年前的数据归档到另外一台服务器的归档库。有些业务表数据量比较大,为了更快的查询速度更好的用户体验,可能会对某张特定的表做归档处理,只保留最近1个

    2024年02月19日
    浏览(39)
  • MySQL数据库归档工具之【pt-archiver】

    前言 当MySQL数据库积累了大量历史数据时,有效地管理这些数据变得至关重要。为了避免影响数据库性能,并确保其顺畅运行,我们可以利用 pt-archiver 工具来对历史数据进行归档。 什么是pt-archiver? pt-archiver是Percona Toolkit的一部分,是一个强大的MySQL数据归档工具。它能够帮

    2024年04月14日
    浏览(34)
  • SQLite Studio 连接 SQLite数据库

    1.1、按WIN+R,打开控制台,然后把指引到我们的SQLite的安装路径,输入D:,切换到D盘,cd 地址,切换到具体文件夹,输入“sqlite3”,启动服务 1.2、创建数据库和表  id和name是表的属性(列名),int和varchar是列名的数据类型,int表示是整型,varchar表示是字符串,长度是20,p

    2024年02月15日
    浏览(47)
  • 数据库开发(Sqlite)

    1、数据库开发 1.1 数据与数据管理 什么是信息?   信息是指对现实世界存在方式或运动状态的反应。 什么是数据?   数据是指存储在某一媒体上,能够被识别的物理符号;   数据的概念在数据处理领域已经被大为拓宽,不仅包括字符组成的文本形式的数据,而且还

    2023年04月16日
    浏览(45)
  • SQLite数据库

    目录 SQLite数据库 在Android中的使用 SQLiteOpenHelper中的方法 增删改查 添加数据 insert() 查询数据 query(),rawQuery() 查询和添加案例 数据库帮助类: MainActivity: Activity_main.xml:         SQLite是一个 轻量级的嵌入数据库 ,实现了自给自足的、 无服务器 的、 零配置 的、事务性的

    2023年04月15日
    浏览(45)
  • Android studio 连接SQLite数据库 +创建数据库+创建数据库表

    Android studio 之数据库的使用 连接创建SQLite 大家好,欢迎来到寒依。 相信看啦我的教程 当老师问你在学习Android studio 数据库使用过程中遇到什么困难,分享一下你的感悟和解决方法 的时候,你可以直接大胆的说出来: “老师我没有遇到问题,看啦寒依的教程 畅行无阻” 我

    2024年02月02日
    浏览(52)
  • 用idea查看sqlite数据库idea sqlite

                        在此做个笔记

    2024年02月10日
    浏览(45)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包