поэтому я начинаю делать сервер, чтобы помочь школьному проекту, и я не нашел ответа на эти вопросы. Как правило, код работает следующим образом, когда вы впервые открываете сайт и регистрируете учетную запись, система проверяет, существует ли учетная запись. Если нет, то он создаст его и создаст для него кратчайший путь, то есть в основном образ, но на рабочем сервере с apache я не могу сохранить образ, который генерирует система. Сервер работает на малиновом компьютере с сервером ubunto, я установил разрешения 777 для папки мультимедиа, в которой система сохраняет образ cracha и представления sudo chown www-data:www-data -R base_directory/
и chmod 777 -R Base_directory
:
def register(request):
if request.method == 'POST':
senha1 = EncritpPassword(request.POST.get('senha', 'error'))
senha2 = EncritpPassword(request.POST.get('senha-r', 'error'))
Email = request.POST.get('email', 'erro')
nome = request.POST.get('nome', 'erro')
comite = request.POST.get('SelectionCommitee', 'No Committee')
NOW = datetime.datetime.now().strftime("%d-%m-%Y %H:%M:%S")
if ( (senha1 != 'error') and (senha2 != 'error') and (senha1 == senha2) and (Email != 'erro') and (nome != 'erro')):
user = CheckUser(Email)
if user == False:
UserProtocol = EncritpEPR(Email)
Cracha_Generator(UserProtocol, nome, comite)
with connection.cursor() as cursor:
messages.success(request, 'Success creating your account now login please!')
UserRegister(nome, Email, comite, NOW)
cursor.execute("INSERT INTO index_account ( nome, email, senha, committees, createdAt, autorizacao) VALUES (%s, %s, %s, %s, %s, 0)", [nome, Email, senha2, comite, NOW] )
cursor.execute("INSERT INTO index_Conference (UserProtocol, email, rooms, datetime, AditionalInformation) VALUES (%s, %s, %s, %s, %s)", [UserProtocol , Email, 'no_data', 'no_data', 'no_data'])
return redirect('/user/login')
else:
messages.error(request, 'Error 401: This User alredy exist in our system!!!!')
return redirect('/user/login')
else:
messages.error(request, 'Erro 409: the passwords MUST be Equal')
return redirect('/user/register')
User_email = request.session.get('email', 'erro')
if User_email !="erro":
messages.error(request, 'Error 401: Why another account?')
return render(request, 'account/register.html')
cracha_generator:
def Cracha_Generator(protocol, Full_Name, Committee):
#caminhos
Qr_Code_path = ('media/qr-code-' + protocol + '.png')
Cracha_path = 'media/cracha.png'
Cracha_pronto_path = 'media/cracha/cr'+ protocol + '.png'
data = ('SOME_URL' + protocol )# o que vai dentro do qrcode
# dimensoes do qr code
qr = qrcode.QRCode(
version=1, # tamanho da informacao
box_size=7, # tamanho do qrcode 7 = 217x217px
border=1 #tamanho da borda
)
qr.add_data(data) #coloca dentro do qr code
qr.make(fit=True) # faz o qrcode
img = qr.make_image(fill='white', background_color='black') # faz a imagem com cores
img.save(Qr_Code_path) # salva a imagem
cracha = Image.open(Cracha_path) #abre a primeira imagem
qrcodeImage = Image.open(Qr_Code_path)#abre a segunda imagem
area = (550, 265) # define um poto inicial para colar a imagem
cracha.paste(qrcodeImage, area) # cola a imagem com a area expecificada
image = cracha
font_type = ImageFont.truetype('media/times-new-roman.ttf', 24) # fonte com tamanho
draw = ImageDraw.Draw(image) # indica qual imagem escrever
draw.text(xy=(205, 45), text=Full_Name, fill=(0,0,0), font=font_type) # escreve
draw.text(xy=(205, 110), text=Committee, fill=(0,0,0), font=font_type) # escreve
draw.text(xy=(205, 175), text=protocol, fill=(0,0,0), font=font_type)# escreve
image.save(Cracha_pronto_path)# salva
registro(Full_Name, 'media/cracha/cr'+ protocol + '.png', protocol ) # registro de tarefa em arquivo registro.dll
os.remove(Qr_Code_path) # exclui sobras do sistema
return True # termina a funcao