提交 78e80597 编写于 作者: checklate's avatar checklate

美化登录页

上级 06c688cb
...@@ -6,4 +6,6 @@ ...@@ -6,4 +6,6 @@
1、终端中设置环境变量`$env:FLASK_APP = "flasky.py"` 1、终端中设置环境变量`$env:FLASK_APP = "flasky.py"`
2、使用flask run启动 2、使用flask run启动
\ No newline at end of file
3、开启调试模式`$env:FLASK_DEBUG=1 `
\ No newline at end of file
...@@ -15,12 +15,14 @@ from ..models import User ...@@ -15,12 +15,14 @@ from ..models import User
class RegistrationForm(FlaskForm): class RegistrationForm(FlaskForm):
username = StringField('Username', validators=[ username = StringField('Username', validators=[
DataRequired(), Length(1, 64), DataRequired(),
Length(1, 64),
Regexp('^[A-Za-z][A-Za-z0-9_.]*$', 0, Regexp('^[A-Za-z][A-Za-z0-9_.]*$', 0,
'Usernames must have only letters, numbers, dots or ' 'Usernames must have only letters, numbers, dots or '
'underscores')]) 'underscores')])
password = PasswordField('Password', validators=[ password = PasswordField('Password', validators=[
DataRequired(), EqualTo('password2', message='Passwords must match.')]) DataRequired(),
EqualTo('password2', message='Passwords must match.')])
password2 = PasswordField('Confirm password', validators=[DataRequired()]) password2 = PasswordField('Confirm password', validators=[DataRequired()])
submit = SubmitField('Register') submit = SubmitField('Register')
......
...@@ -55,8 +55,3 @@ def register(): ...@@ -55,8 +55,3 @@ def register():
def before_request(): def before_request():
if current_user.is_authenticated: if current_user.is_authenticated:
current_user.ping() current_user.ping()
# if not current_user.confirmed \
# and request.endpoint \
# and request.blueprint != 'auth' \
# and request.endpoint != 'static':
# return redirect(url_for('auth.unconfirmed'))
from random import randint
from sqlalchemy.exc import IntegrityError
from faker import Faker
from . import db
from .models import User, Post
def users(count=100):
fake = Faker()
i = 0
while i < count:
u = User(username=fake.user_name(),
password='password',
name=fake.name(),
location=fake.city(),
about_me=fake.text(),
member_since=fake.past_date())
db.session.add(u)
try:
db.session.commit()
i += 1
except IntegrityError:
db.session.rollback()
def posts(count=100):
fake = Faker()
user_count = User.query.count()
for i in range(count):
u = User.query.offset(randint(0, user_count - 1)).first()
p = Post(body=fake.text(),
timestamp=fake.past_date(),
author=u)
db.session.add(p)
db.session.commit()
...@@ -37,7 +37,6 @@ class Permission: ...@@ -37,7 +37,6 @@ class Permission:
ADMIN = 16 ADMIN = 16
class Role(db.Model): class Role(db.Model):
__tablename__ = 'roles' __tablename__ = 'roles'
id = db.Column(db.Integer, primary_key=True) id = db.Column(db.Integer, primary_key=True)
...@@ -87,6 +86,7 @@ class Role(db.Model): ...@@ -87,6 +86,7 @@ class Role(db.Model):
db.session.add(role) db.session.add(role)
db.session.commit() db.session.commit()
class Post(db.Model): class Post(db.Model):
__tablename__ = 'posts' __tablename__ = 'posts'
id = db.Column(db.Integer, primary_key=True) id = db.Column(db.Integer, primary_key=True)
...@@ -124,6 +124,7 @@ class Post(db.Model): ...@@ -124,6 +124,7 @@ class Post(db.Model):
raise ValidationError('post does not have a body') raise ValidationError('post does not have a body')
return Post(body=body) return Post(body=body)
class Follow(db.Model): class Follow(db.Model):
__tablename__ = 'follows' __tablename__ = 'follows'
follower_id = db.Column(db.Integer, db.ForeignKey('users.id'), follower_id = db.Column(db.Integer, db.ForeignKey('users.id'),
...@@ -132,6 +133,7 @@ class Follow(db.Model): ...@@ -132,6 +133,7 @@ class Follow(db.Model):
primary_key=True) primary_key=True)
timestamp = db.Column(db.DateTime, default=datetime.utcnow) timestamp = db.Column(db.DateTime, default=datetime.utcnow)
class User(UserMixin, db.Model): class User(UserMixin, db.Model):
__tablename__ = 'users' __tablename__ = 'users'
id = db.Column(db.Integer, primary_key=True) id = db.Column(db.Integer, primary_key=True)
...@@ -260,6 +262,7 @@ class AnonymousUser(AnonymousUserMixin): ...@@ -260,6 +262,7 @@ class AnonymousUser(AnonymousUserMixin):
login_manager.anonymous_user = AnonymousUser login_manager.anonymous_user = AnonymousUser
class Comment(db.Model): class Comment(db.Model):
__tablename__ = 'comments' __tablename__ = 'comments'
id = db.Column(db.Integer, primary_key=True) id = db.Column(db.Integer, primary_key=True)
...@@ -278,6 +281,7 @@ class Comment(db.Model): ...@@ -278,6 +281,7 @@ class Comment(db.Model):
markdown(value, output_format='html'), markdown(value, output_format='html'),
tags=allowed_tags, strip=True)) tags=allowed_tags, strip=True))
db.event.listen(Comment.body, 'set', Comment.on_changed_body) db.event.listen(Comment.body, 'set', Comment.on_changed_body)
...@@ -285,4 +289,5 @@ db.event.listen(Comment.body, 'set', Comment.on_changed_body) ...@@ -285,4 +289,5 @@ db.event.listen(Comment.body, 'set', Comment.on_changed_body)
def load_user(user_id): def load_user(user_id):
return User.query.get(int(user_id)) return User.query.get(int(user_id))
db.event.listen(Post.body, 'set', Post.on_changed_body) db.event.listen(Post.body, 'set', Post.on_changed_body)
...@@ -4,17 +4,20 @@ ...@@ -4,17 +4,20 @@
{% block title %}Flasky - Login{% endblock %} {% block title %}Flasky - Login{% endblock %}
{% block page_content %} {% block page_content %}
<div class="page-header">
<h1>Login</h1>
</div>
<div class="col-md-4">
{{ wtf.quick_form(form) }}
</div>
<p>
New user?
<a href="{{ url_for('auth.register') }}">
Click here to register
</a>
</p>
<div class="container">
<form class="form-signin">
<h2 class="form-signin-heading">Please Log in</h2>
{{ wtf.form_field(form.username, class="form-control user-icon") }}
{{ wtf.form_field(form.password, class="form-control password-icon") }}
{{ wtf.form_field(form.remember_me) }}
{{ wtf.form_field(form.submit, class="btn btn-lg btn-primary btn-block") }}
<p>
New user?
<a href="{{ url_for('auth.register') }}">
Click here to register
</a>
</p>
</form>
</div>
{% endblock %} {% endblock %}
{% extends "bootstrap/base.html" %} {% extends "bootstrap/base.html" %}
{% block title %}Flasky{% endblock %} {% block title %}First_Blog{% endblock %}
{% block head %}
{{ super() }}
<link rel="shortcut icon" href="{{ url_for('static', filename='favicon.ico') }}" type="image/x-icon">
<link rel="icon" href="{{ url_for('static', filename='favicon.ico') }}" type="image/x-icon">
<link rel="stylesheet" type="text/css" href="{{ url_for('static', filename='styles.css') }}">
{% endblock %}
{% block navbar %} {% block navbar %}
<div class="navbar navbar-inverse" role="navigation"> <div class="navbar navbar-default" role="navigation">
<div class="container"> <div class="container">
<div class="navbar-header"> <div class="navbar-header">
<button type="button" class="navbar-toggle" <button type="button" class="navbar-toggle"
...@@ -13,11 +20,16 @@ ...@@ -13,11 +20,16 @@
<span class="icon-bar"></span> <span class="icon-bar"></span>
<span class="icon-bar"></span> <span class="icon-bar"></span>
</button> </button>
<a class="navbar-brand" href="/">Flasky</a> <a class="navbar-brand" href="/">First_Blog</a>
</div> </div>
<form class="navbar-form navbar-left" role="search">
<div class="form-group">
<input type="text" class="form-control" placeholder="Search">
</div>
<button type="submit" class="btn btn-default"><span class="glyphicon glyphicon-search"></span></button>
</form>
<div class="navbar-collapse collapse"> <div class="navbar-collapse collapse">
<ul class="nav navbar-nav"> <ul class="nav navbar-nav">
<li><a href="/">Home</a></li>
{% if current_user.is_authenticated %} {% if current_user.is_authenticated %}
<li> <li>
<a href="{{ url_for('main.user', username=current_user.username) }}"> <a href="{{ url_for('main.user', username=current_user.username) }}">
...@@ -26,13 +38,11 @@ ...@@ -26,13 +38,11 @@
</li> </li>
{% endif %} {% endif %}
</ul> </ul>
<ul class="nav navbar-nav navbar-right"> <ul class="nav navbar-nav navbar-right">
{% if current_user.is_authenticated %} {% if current_user.is_authenticated %}
<li><a href="{{ url_for('auth.logout') }}">Log Out</a></li> <li><a href="{{ url_for('auth.logout') }}">Log Out</a></li>
{% else %} {% else %}
<li><a href="{{ url_for('auth.login') }}">Log In</a></li> <button type="button" class="btn btn-default navbar-btn"><a href="{{ url_for('auth.login') }}"><span class="glyphicon glyphicon-user"></span>Log In</a></button>
{% endif %} {% endif %}
</ul> </ul>
</div> </div>
......
...@@ -2,7 +2,7 @@ ...@@ -2,7 +2,7 @@
{% import "bootstrap/wtf.html" as wtf %} {% import "bootstrap/wtf.html" as wtf %}
{% import "_macros.html" as macros %} {% import "_macros.html" as macros %}
{% block title %}Flasky{% endblock %} {% block title %}First_Blog{% endblock %}
{% block page_content %} {% block page_content %}
<div class="page-header"> <div class="page-header">
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册