我试图在Flask-SQLAlchemy中建立多对多关系,但似乎我不知道如何填充"多对多标识符数据库".你能帮我理解我做错了什么以及应该怎么看?
class User(db.Model):
__tablename__ = 'users'
user_id = db.Column(db.Integer, primary_key=True)
user_fistName = db.Column(db.String(64))
user_lastName = db.Column(db.String(64))
user_email = db.Column(db.String(128), unique=True)
class Class(db.Model):
__tablename__ = 'classes'
class_id = db.Column(db.Integer, primary_key=True)
class_name = db.Column(db.String(128), unique=True)
Run Code Online (Sandbox Code Playgroud)
然后我的标识符数据库:
student_identifier = db.Table('student_identifier',
db.Column('class_id', db.Integer, db.ForeignKey('classes.class_id')),
db.Column('user_id', db.Integer, db.ForeignKey('users.user_id'))
)
Run Code Online (Sandbox Code Playgroud)
到目前为止,当我尝试将数据插入数据库时,它看起来像这样.
# User
user1 = User(
user_fistName='John',
user_lastName='Doe',
user_email='john@doe.es')
user2 = User(
user_fistName='Jack',
user_lastName='Doe',
user_email='jack@doe.es')
user3 = User(
user_fistName='Jane',
user_lastName='Doe',
user_email='jane@doe.es')
db.session.add_all([user1, user2, user3])
db.session.commit()
# Class
cl1 = Class(class_name='0A')
cl2 = …Run Code Online (Sandbox Code Playgroud) 我想知道如何通过创建API服务上传文件?
class UploadImage(Resource):
def post(self, fname):
file = request.files['file']
if file:
# save image
else:
# return error
return {'False'}
Run Code Online (Sandbox Code Playgroud)
路线
api.add_resource(UploadImage, '/api/uploadimage/<string:fname>')
Run Code Online (Sandbox Code Playgroud)
然后是HTML
<input type="file" name="file">
Run Code Online (Sandbox Code Playgroud)
我在服务器端启用了CORS
我使用angular.js作为前端和ng-upload,如果这很重要,但也可以使用CURL语句!
当我尝试加入多对多表并通过main-id对其进行分组时,当我添加第二个多对多表时,我得到重复.
以下是我的模型的样子:
用户
class User(UserMixin, db.Model):
id = db.Column(db.Integer, primary_key=True)
user_fistName = db.Column(db.String(64))
...
Run Code Online (Sandbox Code Playgroud)
student_identifier
student_identifier = db.Table('student_identifier',
db.Column('class_id', db.Integer, db.ForeignKey('class.class_id')),
db.Column('id', db.Integer, db.ForeignKey('user.id'))
)
Run Code Online (Sandbox Code Playgroud)
类
class Class(db.Model):
sqlite_autoincrement=True
class_id = db.Column(db.Integer, primary_key=True)
class_name = db.Column(db.String(128), unique=True)
mm_children = db.relationship('User', secondary=student_identifier, backref=db.backref('classes'))
Run Code Online (Sandbox Code Playgroud)
class_course_identifier
class_course_identifier = db.Table('class_course_identifier',
db.Column('course_id', db.Integer, db.ForeignKey('course.course_id')),
db.Column('class_id', db.Integer, db.ForeignKey('class.class_id'))
)
Run Code Online (Sandbox Code Playgroud)
数据库结构

好吧,我正在使用SQLAlchemy选择我想要的数据所需的表.这个session.query
db.session.query(
Class.class_id,
Class.class_name,
func.group_concat(User.user_fistName),
func.group_concat(Course.course_name)
).filter(Class.courses, User.classes).group_by(Class.class_id)
Run Code Online (Sandbox Code Playgroud)
问题是我得到了课程和名称的重复,所以如果课程有两个用户,它将打印学生和课程两次.这是它的样子:
错误的看法

以下是它的外观:
正确的观点

当我添加第二个多对多表时,问题就出现了,例如users/student-identifier.如果我删除我"加入"它的行,我得到重复.反正有没有纠正这个?或者我应该使用RAW-SQL(如果是,如何使用?)
我正在尝试使用Node,Express,Angular2(数据库, - MongoDB或SQL)设置工作区
但我不确定如何正确设置它.到目前为止,我的文件结构看起来像这样,我打算将前端放在公共文件夹下.
?? package.json
??? public
??? routes
? ??? test.js
??? server.js
??? views
Run Code Online (Sandbox Code Playgroud)
到目前为止,我的server.js看起来像这样
var express = require('express');
var mysql = require('mysql');
var cookieParser = require('cookie-parser');
var bodyParser = require('body-parser');
var path = require('path');
var lel = require('./routes/test');
var app = express();
app.use(bodyParser.json());
app.use(bodyParser.urlencoded({ extended: false}));
app.use(cookieParser());
app.use(express.static(path.join(__dirname, 'public')));
app.use('/api/', test);
app.use(function(req, res, next) {
// error handling
});
var server = app.listen(3000, function() {
// shows the connection etc
});
module.exports = app; …Run Code Online (Sandbox Code Playgroud) 我正在尝试用猫鼬学习CRUD.我只是错过了更新部分.我究竟做错了什么?
我的模特
var mongoose = require('mongoose');
var testSchema = new mongoose.Schema({
name: String,
number: Number
});
mongoose.model('TestData', testSchema);
Run Code Online (Sandbox Code Playgroud)
我的路线
// get the models
var Test = mongoose.model('TestData');
Run Code Online (Sandbox Code Playgroud)
PARAM
如果链接具有'test'作为url参数,它将查看对象是否存在于数据库中,否则返回错误.
router.param('test', function(req, res, next, id){
var query = Test.findById(id);
query.exec(function(err, test){
if(err){ return next(err); }
if(!test){ return next(new Error('can\'t find test')); }
req.test = test;
return next();
});
});
Run Code Online (Sandbox Code Playgroud)
GET BY ID
/* GET testdata/:id */
router.get('/testingdata/:test', function(req, res, next){
req.test.populate('test', function(err, test){
res.json(test);
});
});
Run Code Online (Sandbox Code Playgroud)
删除
/* DELETE …Run Code Online (Sandbox Code Playgroud) 我想知道你如何通过给予日,周数和年份来获得月份.
例如,如果你有这样的东西
def getmonth(day, week, year):
# by day, week and year calculate the month
print (month)
getmonth(28, 52, 2014)
# print 12
getmonth(13, 42, 2014)
# print 10
getmonth(6, 2, 2015)
# print 1
Run Code Online (Sandbox Code Playgroud) 我想知道如何通过选择文档(行)然后进入嵌套数组并选择特定对象来更新PyMongo/MongoDB的嵌套数组.
{
"_id" : "12345",
"name" : "John Doe,
"mylist" : [
{
"nested_id" : "1",
"data1" : "lorem ipsum",
"data2" : "stackoverflow",
"data3" : "james bond"
},
{
"nested_id" : "2",
"data1" : "lorem ipsum",
"data2" : "stackoverflow",
"data3" : "james bond"
},
{
....
}
]
}
Run Code Online (Sandbox Code Playgroud)
然后让我们说你通过自己想要更新的元素.在此示例中,仅更新data1和data3
data = {
"data1" : "new lorem",
"data3" : "goldeneye"
}
Run Code Online (Sandbox Code Playgroud)
我尝试使用以下语法,但没有成功.
db.testing.find_and_modify(
query={"_id": "12345", 'mylist.nested_id' : "1"},
update={"$set": {'mylist' : data}})
Run Code Online (Sandbox Code Playgroud)
更新后应该是什么样子
{
"_id" …Run Code Online (Sandbox Code Playgroud) 我正在尝试通过哈希和盐析在数据库中保存密码来学习密码学,所以我决定尝试使用登录系统来实现这个系统.
我的数据库包括
我正在使用PBKDF2,但似乎这不是一个散列/腌制方法,如果它不是什么呢?
如果是这样,我这样做对吗?
我的钥匙
private const int SALT_SIZE = 64;
private const int KEY_SIZE = 64;
Run Code Online (Sandbox Code Playgroud)
将数据插入数据库
public static void RegisterMe(string _username, string _password, string _email)
{
using (var cn = new SqlConnection(User.strcon))
{
string _sqlins = @"
INSERT INTO
[User]
([Username],[Salt],[Password],[RegDate], [Email])
VALUES
(@Username, @Salt, @Password, CURRENT_TIMESTAMP, @Email)";
var cmd = new SqlCommand(_sqlins, cn);
cn.Open();
using (var deriveBytes = new Rfc2898DeriveBytes(_password, SALT_SIZE))
{ …Run Code Online (Sandbox Code Playgroud) 我正在使用 Flask-SQLAlchemy,但在 SQL 语法中的 IN 子句中遇到了一些问题。我希望我的 IN 子句“读取”的数据是一个包含一些数据的列表,例如
args = [1, 2, 3]
Run Code Online (Sandbox Code Playgroud)
这是我的代码的样子。
connection = db.session.connection()
raw_sql = text("""
SELECT
*
FROM
table
WHERE data IN :list
""")
query = connection.engine.execute(raw_sql, {'list' : args})
Run Code Online (Sandbox Code Playgroud)
我试过给 args 参数插入元组和列表,但没有任何效果。我要么得到:
args = tuple([1, 2, 3])args = [1, 2, 3]
您如何使用 SQLAlchemy 从列表中读取并使用 RAW SQL 和参数作为输入?
我试图在Visual Studio 2012中从NuGet安装一个干净的Umbraco安装,但是当我尝试运行代码时出现此错误
你调用的对象是空的.
[NullReferenceException: Object reference not set to an instance of an object.]
Umbraco.Web.UmbracoModule.BeginRequest(HttpContextBase httpContext) +16
Umbraco.Web.UmbracoModule.<Init>b__8(Object sender, EventArgs e) +253
System.Web.SyncEventExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute() +136
System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously) +69
Run Code Online (Sandbox Code Playgroud)
我如何做的步骤
注意:我正在安装V7.1.1并使用Visual Studio 2012 Professional
我正在从SQL迁移到NoSQL,我正在尝试学习基础知识.但到目前为止,我一直在努力与一个"选择声明"
可以说我有这种收藏品
文件1
{
"_id" : "id1",
"name" : "aa",
"array" : [
{
"nested_id" : "n323123",
"nesteddata" : "lorem",
"active" : 1
},
{
"nested_id" : "n353123",
"nesteddata" : "lorem",
"active" : 0
},
{
"nested_id" : "n323123",
"nesteddata" : "lorem",
"active" : 1
}
]
}
Run Code Online (Sandbox Code Playgroud)
文件2
{
"_id" : "id2",
"name" : "bb",
"array" : [
{
"nested_id" : "n325123",
"nesteddata" : "lorem",
"active" : 1
},
{
"nested_id" : "n355123",
"nesteddata" : "lorem",
"active" : 1 …Run Code Online (Sandbox Code Playgroud) python ×6
flask ×4
sqlalchemy ×3
javascript ×2
mongodb ×2
node.js ×2
angular ×1
angularjs ×1
asp.net ×1
c# ×1
cryptography ×1
encryption ×1
hash ×1
mongoose ×1
mysql ×1
nuget ×1
pbkdf2 ×1
pymongo ×1
python-3.x ×1
umbraco ×1