我在虚拟环境中关注django教程:版本1.8,Ubuntu 10.04,python 3.4。我似乎在我的Ubuntu服务器上创建了一个django项目(yatest)就好了,我启动了开发服务器:
(v1)cj@drop1:~/www/yatest$ python manage.py runserver
Performing system checks...
System check identified no issues (0 silenced).
August 09, 2015 - 04:37:33
Django version 1.8.3, using settings 'yatest.settings'
Starting development server at http://127.0.0.1:8000/
Quit the server with CONTROL-C.
但是当我浏览http://myserver:8000时,我得到的回复是'ERR_EMPTY_RESPONSE'。
在创建应用程序之前,这是本教程的第一部分。在本教程的早期阶段,它没有提到我可以检查的任何错误日志。我的telnet客户端没有说任何崩溃,'ctl-c'将关闭服务器进程而没有任何投诉。
使用netstat -lntp我验证没有其他进程正在使用端口8000.我没有安装Apache。我确实安装了gunicorn和nginx但是在教程中它们都已停止并且尚未使用。
我对linux很新;我可以使用一些帮助找到错误日志或其他调试工具来解决这个问题。我不怀疑我错过了一些基本的操作系统设置或启用TCP访问的东西等。
由于 克拉克
答案 0 :(得分:3)
发现我的错误。在专用服务器上启动dev django服务器时,必须在命令中包含专用服务器的地址。在与浏览器相同的计算机上启动dev服务器时,不需要这样做。而不是
$python manage.py runserver
你必须跑步
$python manage.py runserver <server ip>:8000
。
所以这是我在堆栈交换上的不光彩的开始。你什么也没看到! :P
答案 1 :(得分:0)
如果您不想麻烦确定服务器IP(即使用容器时),则可以收听0.0.0.0:8000
import UIKit
class ChooseProductViewController: UIViewController, UITableViewDataSource, UITableViewDelegate {
var productName: String? = ""
var workModel: ActualValues?
var closureBlock2: (() -> Void)?
@IBOutlet weak var checkButton: UIButton!
let productList : [String] = ["Almond 20g",
"Almond 40g",
"Baharat Spice Mix 2g",
"Baharat Spice Mix 4g",
]
func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
return productList.count
}
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let myCell = tableView.dequeueReusableCell(withIdentifier: "Cell", for: indexPath)
myCell.textLabel?.text = productList[indexPath.row]
return myCell
}
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view.
}
@IBAction func checkButton(_ sender: UIButton) {
workModel?.product = productName
closureBlock2?()
self.dismiss(animated: true, completion: nil)
}
func configureProduct(model: ActualValues) {
workModel = model
}
}
答案 2 :(得分:0)
如果您在虚拟环境中本地运行,则需要指定端口和地址:
python manage.py runserver 127.0.0.1:8000
对于容器,最简单的方法是监听所有地址:
python manage.py runserver 0.0.0.0:8000
对于在docker环境中使用PyCharm的任何人来说,值得一提的是PyCharm将覆盖您的docker-compose
配置以更改runserver
命令以绑定到Host
选项中指定的端口在您的Run/Debug Configurations
窗口中。
如果要使用调试器等,请确保将主机设置为0.0.0.0
,并将端口设置为8000
。