Контакты

Достижения

Все достижения (30)

Наибольший вклад в теги

Все теги (97)

Лучшие ответы пользователя

Все ответы (229)
  • Что не так с регистрацией Flask?

    GeraJet
    @GeraJet
    Кратко, после проверки валидации берешь username и password из формы, делаешь запрос по ним в базу и если такой пользователь с таким паролем существует, применяешь метод login_user() из Flask-login
    # -*- coding: utf-8 -*-
    from flask import request, render_template, flash, g, session, redirect, url_for
    from flask.ext.login import login_user, logout_user, current_user, login_required
    from app import db
    from app.models import User
    from app.forms import LoginForm
        
    @app.route('/', methods=['GET', 'POST'])
    def index():
        form = LoginForm()
        if form.validate_on_submit():
            username = request.form['username']
            password = request.form['password']
            user = User.query.filter_by(username=username, password=password).first()
            if user is None:
                flash(u'Неверный логин или пароль', 'error')
                return redirect("/")
            login_user(user)
            return redirect("/")
        return render_template("main/main.html", 
            form = form)
    
    @app.route('logout/')
    def logout():
        logout_user()
        return redirect("/")

    models.py
    from app import db
    
    class User(db.Model):
        __tablename__ = 'users'
        id = db.Column(db.Integer, primary_key=True)
        name = db.Column(db.String(100))
        username = db.Column(db.String(120), unique=True)
        password = db.Column(db.String(120))
    
        def __init__(self, name, username, password):
            self.name = name
            self.username = username
            self.password = password
    
        def is_authenticated(self):
            return True
    	 
        def is_active(self):
            return True
    
        def is_anonymous(self):
            return False
    
        def get_id(self):
            return unicode(self.id)
    
        def __repr__(self):
            return self.name

    template
    {% with messages = get_flashed_messages() %}
    	{% if messages %}
    	<div class="flash">
    	{% for message in messages %}
    	    {{ message }}
    	{% endfor %}
    	</div>
    	{% endif %}
    {% endwith %}
    
    <form method="POST" action="/login">
        <div>{{ form.username.label }}: {{ form.username(class="css_class") }}</div>
        {% if form.username.errors %}
            <ul class="errors">{% for error in form.username.errors %}<li>{{ error }}</li>{% endfor %}</ul>
        {% endif %}
    
        <div>{{ form.password.label }}: {{ form.password() }}</div>
        {% if form.password.errors %}
            <ul class="errors">{% for error in form.password.errors %}<li>{{ error }}</li>{% endfor %}</ul>
        {% endif %}
        <input type="submit" value="Go">
    </form>
    Ответ написан
  • Почему все хотят django?

    GeraJet
    @GeraJet
    Туториалы Мигеля - не совсем лучший выбор для обучения. Не сказать, что они плохи, но полного понимания после них лично у меня не было. Источники - поищите на github проекты, посмотрите, как делают другие, структуру проектов, код и т.д. Неважно, на каком языке документация, все равно основной язык - Python.
    Flask хорош, но многое (в том числе и то, что реализовано в Django), придется писать самому. Да и батареек для Django в разы больше, соответственно разработка на нем сильно экономит время. Это одна из причин, по которой отдается предпочтение Django. И это не фишка рунета, так во всем мире.

    На Flask можно делать проекты для себя, но если у вас в планах дальнейшее трудоустройство (неважно где), то обязательно освоить Django.
    Ответ написан
  • Как реализовать список пользователей по категориям Django 1.9?

    GeraJet
    @GeraJet
    views.py
    from .models import Team
    from django.views.generic import ListView
    
    class TeamList(ListView):
        model = Team

    template
    {% for item in team_list %}
    	{{item.name}}<br>
    		{% for user in item.team.all %}
    			{{user.name}}<br>
    		{% endfor %}
    {% endfor %}
    Ответ написан
  • Как попасть в директорию c файлами python в pythonanywhere?

    GeraJet
    @GeraJet
    Заходите по SSH, переходите в директорию js/mage/adminhtml/wysiwyg/tiny_mce/,
    редактируете setup.js c помощью nano, vi или что там еще, в чем проблема?
    Если проблема в незнании простых команд Linux, советую уделить пару дней этому.
    Ответ написан

Лучшие вопросы пользователя

Все вопросы (38)