2016-07-27 2 views
0
을 커밋에 분실

모델은 여기에부분이 세션에 추가하고 플라스크

class User(db.Model): 
    id = db.Column(db.Integer, primary_key=True) 
    artistname = db.Column(db.String(64)) 
    photourl = db.Column(db.String(1000)) 
    contactInfo = db.Column(db.String(20)) 
    description = db.Column(db.String(500)) 
    date = db.Column(db.Date) 
    def __repr__(self): 
     return '<User %r>' % (self.photourl) 

photourl 게시 된 사진의 URL입니다.

양식 제출 후.

user = User(artistname = form.artist.data,photourl = "", 
      description = form.description.data,contactInfo = form.contactinfo.data,date = datetime.datetime.utcnow().date()) 

나는 photourl없이 모든 세부 사항을 추가합니다.

이제 파일 이름에 저장되는 모든 파일 이름의 목록을 code.And의 중간에 *로 결합합니다.

filename = "*".join(filename) 
print(filename) 

샘플 출력 인쇄 파일명의 단말기가 등장

mic16.jpg*nepal_earthquake_death6.png 

모든 파일명을 조합 한 결과이다. 나는 그것을 데이터베이스에 저장한다. 단말기 사용자

user.photourl = filename 
print(user) 
db.session.add(user) 
db.session.commit() 

여기서 인쇄 출력 정보]가 올바르게 장착되어 도시

<User u'mic16.jpg*nepal_earthquake_death6.png'> 

이다.

이제 내가 할 때 db.session.add (user) 다음에 db.session.commit()이옵니다. 있음 photourl 열 아래의 데이터베이스의 사용자 테이블 mic16.jpg 부분 만 저장되고 나머지 부분은 생략됩니다 즉 * 이전 부분이 저장됩니다.

MYSQL 데이터베이스 및 phpmyadmin을 사용하는 경우 database.My 데이터베이스에 항목이 없습니다. 나는을 사용하여 데이터베이스를 읽고있다.

posts = User.query.order_by(User.date.desc()).limit(5).all() 
photourls = [] 
for i in posts: 
    photourls.append(i.photourl.split('*')) 

필수 URL은 사진에 포함되어야합니다. 그러나 단일 URL 만 각 게시물에 대해입니다.

나는 단지 내 마음이 다가 가서 무슨 일이 벌어지고 있는지에 대한 단서가 없다.

+0

'*'이외의 다른 것을 사용해 보셨습니까? – polku

+0

예 처음에 시도한 다음에 * –

+0

어떻게 데이터베이스에서 다시 읽었습니까? ... 코드를 게시 할 수 있습니까? 출력이. –

답변

1

광주 문자열의 크기로 판단하여 별표 *로 구분 된 문자열 안에 여러 이미지 파일 이름을 저장하려고합니다. 더 나은 대안은 각 파일 이름이 문자열 인 JSON 배열에 파일 이름을 저장하는 것입니다.

getlist을 사용하면 여러 이미지 파일을 한 번에 업로드 할 수 있습니다.

def upload(): 
    uploaded_images = flask.request.files.getlist("file") 

JSON은 다음과 같이 저장됩니다.

{ 
    "photourls":["mic16.jpg", "nepal_earthquake_death6.png"] 
} 
관련 문제