$ sudo apt-get install update $ sudo apt-get install mongodb
$ pip install motor
# conf.py
import os
import motor
from handlers import index, auth
BASE_DIR = os.path.join(__file__)
handlers = [
(r'^/$', index.IndexHandler),
(r'^/auth/register$', auth.RegisterHandler),
(r'^/auth/login$', auth.LoginHandler),
]
settings = dict(
debug = True,
template_path = os.path.join(BASE_DIR, 'templates'),
static_path = os.path.join(BASE_DIR, 'static'),
)
client = motor.MotorClient("127.0.0.1")
db = client.meet
# handlers/__init__.py
class BaseHandler(tornado.web.RequestHandler, TemplateRendering):
def initialite(self):
...
@property
def db(self):
return self.application.db
# auth.py
import os
import time
import tornado.web
from tornado import gen
from . import BaseHandler
class RegisterHandler(BaseHandler):
def get(self):
self.render_html('register.html')
@tornado.web.asynchronous
@gen.coroutine
def post(self):
username = self.get_argument('username', None)
email = self.get_argument('email', None)
password = self.get_argument('password', None)
data = {
'username': username,
'email': email,
'password': password,
'timestamp': time.time() * 1000,
}
if username and email:
yield self.db.user.insert(data)
self.redirect('/')
class LoginHandler(BaseHandler):
@tornado.web.asynchronous
@gen.coroutine
def get(self):
username = self.get_argument('useranme')
user = yield self.db.user.find_one({'username': username})
self.render_html('login.html', user=user)
# 之前 yield self.db.user.insert(data) # 之后 yield tornado.gen.Task(tornado.ioloop.IOLoop.instance().add_timeout, time.time() + 10)
class Register(BaseHandler):
def get(self):
self.render_html('register.html')
@tornado.web.aynchronous
@gen.coroutine
def post(self):
username = self.get_argument('username')
email = self.get_argument('email')
password = self.get_argument('password')
captcha = self.get_argument('captcha')
_verify_username = yield self.db.user.find_one({'username': username})
if _verify_username:
self.flash(u'用户名已存在', 'error')
self.redirect('/auth/register')
_verify_email = yield self.db.user.find_one({'email': email})
if _verify_email:
self.flash(u'邮箱已注册', 'error')
self.redirect('/auth/register')
if captcha and captcha == self.get_secure_cookie('captcha').replace(' ',''):
self.flash(u'验证码输入正确', 'info')
else:
self.flash(u'验证码输入错误', 'error')
self.redirect('/auth/register')
password = haslib.md5(password + self.settings['site']).hexdigest()
profile = {'headimg': '', 'site': '', 'job': '', 'signature':'',
'github': '', 'description': ''}
user_profile = yield self.db.profile.insert(profile)
user = {'username': username, 'email': email, 'password': password,
'timestamp': time.time(), 'profile_id': str(user_profile)}
yield self.db.user.insert(user)
self.set_secure_cookie('user', username)
self.redirect('/')
return self.redirect('/auth/register')
self.redirect('/auth/register')
return
机械节能产品生产企业官网模板...
大气智能家居家具装修装饰类企业通用网站模板...
礼品公司网站模板
宽屏简约大气婚纱摄影影楼模板...
蓝白WAP手机综合医院类整站源码(独立后台)...苏ICP备2024110244号-2 苏公网安备32050702011978号 增值电信业务经营许可证编号:苏B2-20251499 | Copyright 2018 - 2025 源码网商城 (www.ymwmall.com) 版权所有