在服务器上搭载Django网站,在后台保持运行,记录日志log
总结本人在服务器搭载Django动态网页的过程,内容包括:
- 允许其他机器访问网站
- 让网站在后台运行
- 记录网站log
- 利用多线程提高访问速度
欢迎大家留言交流!
外部访问
python3 manage.py runserver
命令运行网站后,只能在本机访问。
python3 manage.py runserver 0.0.0.0:8000
运行后,通过网址http://ip:8000
可以访问该网站。
本例用服务器的8000端口,可以选择不同的端口。
后台运行
后台保持运行:nohup python3 manage.py runserver 0.0.0.0:8000 &
日志记录
参考这篇文章 https://zhuanlan.zhihu.com/p/133864368 建立了Django 中间件。
另外,在views.py
中想要记录用户提交的数据,用以下代码:
import logging
logger = logging.getLogger('web.log')
logger.info("Data from user: " + str(data))
多线程提高访问速度
在进入网页url1
时,让线程 t1
开始读取后续可能需要的数据。主线程加载该网页,让用户可以即时访问。
import threading
graph = None
t1 = None
reading_graph = False
def url1(request):
global t1
t1 = threading.Thread(target=read_graph)
t1.start()
return render(request, 'url1.html', locals())
def read_graph():
global graph
global t1
global reading_graph
if graph == None and reading_graph == False:
reading_graph = True
graph = read_graph_()
t1.join
return