Django数据库字段修改,以及查询

首先需要配置sqlite3

官方现在sqlite3压缩包,将其解压到某一文件夹中,然后在系统的环境变量中配置sqlite3,

由于在Django的项目文件夹目录下,有db.sqlite3文件,所以需要要访问该数据,需要在dos中键入下入命令,

sqlite3 db.sqlite3

进入数据库之后,即可使用sql语句进行访问

select * from dbname


SELECT name FROM sqlite_master

WHERE type='table'
ORDER BY name;

select * from upload_user;


insert a column to the existing tables


to insert a column in the models.py

password = CharField(max_length= 30)


python manage.py shell
from django.db import connection
cursor = connection.cursor()
cursor.execute('alter table upload_user add column password varchar(30)')


python manage.py makemigrations
python manage.py migrate

### Django 数据库配置与操作指南 #### 配置数据库连接 在 Django 中,`settings.py` 文件中的 `DATABASES` 字典定义了如何连接到数据库。默认情况下,Django 使用 SQLite 作为开发环境的数据库引擎。如果要切换到其他数据库(如 MySQL),需要修改此字典的内容[^2]。 以下是针对 MySQL 的基本配置示例: ```python DATABASES = { 'default': { 'ENGINE': 'django.db.backends.mysql', # 指定使用的数据库后端 'NAME': 'your_database_name', # 数据库名称 'USER': 'your_username', # 数据库用户名 'PASSWORD': 'your_password', # 用户密码 'HOST': 'localhost', # 主机名或 IP 地址 'PORT': '3306', # 默认 MySQL 端口 } } ``` 需要注意的是,在生产环境中应特别注意安全性,例如避免硬编码敏感信息,并考虑使用环境变量来存储这些数据。 #### 定义模型 Django 提供了一个强大的 ORM(对象关系映射器),允许开发者通过 Python 类的形式描述数据库结构。这种类被称为 **模型**,位于应用程序下的 `models.py` 文件中[^1]。 下面是一个简单的例子,展示如何创建一个名为 `Book` 的模型: ```python from django.db import models class Book(models.Model): title = models.CharField(max_length=200) # 图书标题 author = models.CharField(max_length=100) # 作者姓名 published_date = models.DateField() # 出版日期 def __str__(self): return self.title # 返回字符串表示形式 ``` 上述代码会自动生成一张对应的数据库表,其中每一列对应于模型的一个字段属性。 #### 执行迁移 当定义好模型之后,需执行一系列命令让 Django 将其同步至实际的数据库中。这通常涉及以下几个步骤: 1. 创建迁移文件:运行 `python manage.py makemigrations` 命令生成必要的 SQL 脚本。 2. 应用迁移:调用 `python manage.py migrate` 来更新数据库模式。 每次更改模型时都需要重复以上过程以保持一致性。 #### 进行CRUD操作 一旦完成初始设置,就可以利用 Django 的 ORM 实现常见的增删改查功能。例如: - 添加新记录: ```python book = Book(title="Python Crash Course", author="Eric Matthes", published_date="2019-04-01") book.save() ``` - 查询现有条目: ```python books = Book.objects.filter(author__icontains='Matthes') for book in books: print(book.title) ``` - 更新已有实例: ```python book_to_update = Book.objects.get(id=1) book_to_update.title = "Updated Title" book_to_update.save() ``` - 删除指定项: ```python book_to_delete = Book.objects.get(id=1) book_to_delete.delete() ``` 每种方法都提供了灵活的方式处理不同场景的数据访问需求。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值