我是 Django 和数据库的新手。
Django 使用 sqlite 数据库作为默认数据库。是否可以将图像存储在 sqlite 数据库中并将其显示在我的网页上?我在 Django 官方网站上找不到任何相关文档。
我想创建一个目录结构表,如本问题所述,其中:
Directory =“主键”id 字段,通常是整数
Directory_Parent =“外键”id 字段,它指向同一个表中另一个目录的 id
Value =包含
给定Tree/Fruit/Apples/ 的目录/文件夹名称的字符串
Directory | Directory_Parent | Value
0 null Root
1 0 Tree
2 1 Fruit
3 2 Apples
Run Code Online (Sandbox Code Playgroud)
已在主键 0 处创建了一个父文件夹为空的根文件夹。
我的路径是从 CSV 导入的,当前位于包含 2 列的表中:
FileID Path
1 videos/gopro/father/mov001.mp4
2 videos/gopro/father/mov002.mp4
3 pictures/family/father/Oldman.jpg
4 pictures/family/father/Oldman2.jpg
5 documents/legal/father/estate/will.doc
6 documents/legal/father/estate/will2.doc
7 documents/legal/father/estate/newyork/albany/will.doc
8 video/gopro/father/newyork/albany/holiday/christmas/2002/mov001.mp4
9 pictures/family/father/newyork/albany/holiday/christmas/2002/july/Oldman.jpg
10 pictures/family/father/newyork/albany/holiday/christmas/2002/june/Oldman2.jpg
Run Code Online (Sandbox Code Playgroud)
该表包含 100 万个文件条目。
如上所述,解析此数据并将文件夹结构移动到新表中的快速且优化的方法是什么?
在此演示中,文件夹由“/”分隔并移动到新列中(如果有帮助的话)。
sqlite3.OperationalError:外键定义中未知列“user_id”
# create details table
details_table = """CREATE TABLE IF NOT EXISTS
details(
user_id INTEGER PRIMARY KEY,
first_name TEXT,
surname TEXT,
role TEXT,
make TEXT,
model TEXT,
colour TEXT,
reg TEXT)"""
cursor.execute(details_table)
# create booking table
booking_table = """CREATE TABLE IF NOT EXISTS
booking(
booking_id INTEGER PRIMARY KEY,
FOREIGN KEY (user_id) REFERENCES details(user_id),
start_date TEXT,
expiry_date TEXT)"""
cursor.execute(booking_table)
Run Code Online (Sandbox Code Playgroud)
非常感谢任何帮助:)
我有一个包含柱状数字和字符串(磁盘上 13GB)的 *.csv 文件,我将其导入到新的 duckdb(或 sqlite)数据库中并将其保存,以便稍后可以在 R 中访问它。但是重新连接会重复它并且非常慢,这是错误的吗?
在 R 内部,我正在执行以下操作:
library(duckdb)
library(dplyr)
library(DBI)
#Create the DB
con <- dbConnect(duckdb::duckdb(), "FINAL_data.duckdb")
#Read in the csv
duckdb_read_csv(con, "data", "FINAL_data_new.csv")
Run Code Online (Sandbox Code Playgroud)
然后我关闭 R 并重新启动它以查看它是否有效:
#这非常慢(大约10分钟),因为它看起来像是在某个地方再次写入数据库。但为什么?
con <- dbConnect(duckdb::duckdb(), "FINAL_data.duckdb")
Run Code Online (Sandbox Code Playgroud)
注意。我添加了 sqlite 作为标签,因为我认为这不是 duckdb 所特有的
我有这个 shell 脚本,它采用一组 INSERT 语句,并在开头放置“BEGIN TRANSACTION”,在末尾放置“COMMIT”。有很多INSERT语句,因此这使得插入速度更快。
我成功使用的脚本如下所示:
file_name_improved_sql=foo-improved.sql
file_name_original_sql=foo.sql
file_name_sqlite_db=bar.db
path_to_insert_error=/tmp/fooerrors.log
#
echo 'BEGIN TRANSACTION;' | cat - $file_name_original_sql > $file_name_improved_sql
echo "COMMIT;" >> $file_name_improved_sql
#
cat $file_name_improved_sql | sqlite3 $file_name_sqlite_db 2> $path_to_insert_error
Run Code Online (Sandbox Code Playgroud)
我想改进这一点,以便不生成中间文件file_name_improved_sql,而是直接通过管道输入两个字符串和文件内容。
像这样的东西(除了这不起作用)......
export string1="BEGIN TRANSACTION"
export string2="COMMIT"
cat $string1 $file_name_improved_sql $string2 | sqlite3 $file_name_sqlite_db 2> $path_to_insert_error
Run Code Online (Sandbox Code Playgroud) 所以我目前是使用 Flask api 的新手,我只是想知道如何将 Streamlit 应用程序连接到 Flask api?就像我希望 Streamlit 应用程序使用 Flask api 来提取数据库一样。目前,我的 Streamlit 应用程序位于一个文件夹中,并且包含一个 dockerfile。我的 Flask api 放在一个单独的文件夹中。
Main Folder
Flask-API Folder
- main.py
- requirements.txt
- table1.db
Streamlit application Folder
- app.py
- Dockerfile
- more python files
- requirements.txt
Run Code Online (Sandbox Code Playgroud)
例如,如果用户单击在 Streamlit 上生成图表的复选框,我如何才能让 Streamlit 应用程序进入 Flask-api 文件夹(联系 api)并获取/拉取数据库。我只是想知道我需要将什么添加到我的flask-api 文件夹中的main.py 文件中。
注意:我尝试让 Streamlit 应用程序联系 Flask api 的目的是因为现在 Streamlit 应用程序正在联系另一个 API,并且需要一段时间才能生成图表。
在.NET 6中有一些不错的新LINQ扩展方法,例如
var oldest = context.People.MaxBy(p => p.Age);
Run Code Online (Sandbox Code Playgroud)
但是,EF 提供程序似乎尚不支持这些功能(当然不支持 SQLite 或 SQLServer,两者都是 6.0.0 版本)。
有谁知道这些提供商计划何时提供这些服务?
require a datatype on every table column and enforce those types.我正在尝试按照此页面启用严格模式。
$ sqlite3 ./a_new_database.sqlite
SQLite version 3.31.1 2020-01-27 19:55:54
Enter ".help" for usage hints.
sqlite> PRAGMA strict=ON;
sqlite> CREATE TABLE yay ( col1 TEXT, col2 INT );
sqlite> INSERT INTO yay ( col1, col2 ) VALUES ("this works", "this is the wrong type");
sqlite> SELECT * from yay;
this works|this is the wrong type
sqlite>
$
Run Code Online (Sandbox Code Playgroud)
我不仅可以INSERT错误的数据类型。我也可以SELECT啊
我已经尝试过了PRAGMA strict=ON;并且PRAGMA strict=1; …
我想将 JSON 数组中的所有元素插入到表中:
INSERT INTO local_config(parameter, value)
SELECT json_extract(j.value, '$.parameter'), json_extract(j.value, '$.value')
FROM json_each(json('[{"parameter": 1, "value": "value1"}, {"parameter": 2, "value": "value2"}]')) AS j
WHERE value LIKE '%'
ON CONFLICT (parameter) DO UPDATE SET value = excluded.value;
Run Code Online (Sandbox Code Playgroud)
到目前为止这有效,但我真的需要这个WHERE value LIKE '%'条款吗?
当我删除它时:
INSERT INTO local_config(parameter, value)
SELECT json_extract(j.value, '$.parameter'), json_extract(j.value, '$.value')
FROM json_each(json('[{"parameter": 1, "value": "value1"}, {"parameter": 2, "value": "value2"}]')) AS j
ON CONFLICT (parameter) DO UPDATE SET value = excluded.value;
Run Code Online (Sandbox Code Playgroud)
我收到此错误:
[SQLITE_ERROR] SQL error or missing database (near …Run Code Online (Sandbox Code Playgroud) 有人知道为什么 Delphi 10.4 或 11.1 无法在 FMX 应用程序中的&SQLite 语句中搜索字符吗?SELECT它被视为一个空格字符。
我确实在其他平台上尝试过相同的数据库,它工作得很好,但即使在 VCL 应用程序中它也不会搜索。
我确实尝试在查询末尾使用 ESCAPE,但没有任何改变。
var myQuery : TFDQuery ;
myQuery :=TFDQuery.Create(nil);
myQuery.Connection:=FDConnection1;
myQuery.SQL.Text :='SELECT Description,Code,Qty FROM Products WHERE Description LIKE "%J&B%" ';
myQuery.Open;
Run Code Online (Sandbox Code Playgroud)
如果有人能找到解决方案,请帮忙。