对于浏览器端发送一次请求,希望持续获得返回,可以使用Server-Sent Events技术。ChatGPT用的就是这种技术。
对于双向持续交互的场景,例如聊天室,可以使用WebSocket技术。
参考:https://www.w3schools.com/html/html5_serversentevents.asp
对于浏览器端发送一次请求,希望持续获得返回,可以使用Server-Sent Events技术。ChatGPT用的就是这种技术。
对于双向持续交互的场景,例如聊天室,可以使用WebSocket技术。
参考:https://www.w3schools.com/html/html5_serversentevents.asp
#!/usr/bin/env python3
import os
date = os.popen("date").read()
html = f"""
<html>
<body>
<p style='color:#ff0000'>
{date}
</p>
</body>
</html>
"""
print(html)
解释一下里面的语法:
第1行是Shell脚本的声明,告诉操作系统应该在哪里找执行这个脚本的命令:
#!/usr/bin/env python3
下面两句是调用系统命令并获取结果。我们可以在Linux的Shell里运行date命令也看到这个结果。date还可以替换成别的Linux命令。特别注意不要把未经过滤的用户输入字符串作为系统命令运行,这会让系统被轻易地入侵。
Docroot is: /usr/local/var/www
The default port has been set in /usr/local/etc/nginx/nginx.conf to 8080 so that
nginx can run without sudo.
nginx will load all files in /usr/local/etc/nginx/servers/.
To restart nginx after an upgrade:
brew services restart nginx
Or, if you don't want/need a background service you can just run:
/usr/local/opt/nginx/bin/nginx -g daemon off;
首先,把生产环境的数据库导出并在本地导入。
然后,从git下载DiscuzX代码(假设路径为http://localhost/discuz/)
这个时候访问http://localhost/discuz/会跳转到install目录,这是因为没有复制生产环境的配置文件。下面Linux/Mac命令可把服务器(例子里的路径要根据各自情况修改)配置文件同步到本地:(Windows用户可用WinScp同步)
rsync -rv root@bbs.zrwh.org:/var/www/html/config/* ./
之后就可以访问 http://localhost/discuz/,但会报数据库连接错误。这是因为本地的MySQL没有创建和服务器一样的账号权限。我们可以选择修改配置文件或本地的MySQL账号密码。我选择了前者,因为修改MySQL账号密码会影响本地已有其它系统。但改配置要注意,不能把配置文件同步到生产环境。
作者只用了45分钟时间就完成了这个俄罗斯方块游戏,代码简单,是学习数据结构和简单Canvas动画的绝佳例子!
最新评论