我正在尝试开始学习python bottle框架,我已经安装了python 2.7.11,并且还安装了pip,我已经使用
pip install bottle
Collecting bottle
Using cached bottle-0.12.9.tar.gz
Installing collected packages: bottle
Running setup.py install for bottle ... done
Successfully installed bottle-0.12.9
Run Code Online (Sandbox Code Playgroud)
现在,我尝试从Bottle网站运行示例代码
from bottle import route, run, template
@route('/hello/<name>')
def index(name):
return template('<b>Hello {{name}}</b>!', name=name)
run(host='localhost', port=8080)
Run Code Online (Sandbox Code Playgroud)
当我运行此代码时,它将引发以下错误
Traceback (most recent call last):
File "C:/Users/SID/Desktop/bottle.py", line 1, in <module>
from bottle import route, run, template
File "C:/Users/SID/Desktop\bottle.py", line 1, in <module>
from bottle import route, run, template
ImportError: cannot import name route
Run Code Online (Sandbox Code Playgroud)
我不知道出了什么问题可以有人指导我,这是代码的错误吗?还是瓶装?
注意:我在运行程序时尝试过python 3.4.3仍然仍然面临相同的错误,并且我在虚拟框中使用Windows 8.1
朋友,我正在使用python套接字做一些简单的实验,其中有一个HOSTNAME可以解析为两个IP地址,但是当我使用时,
socket.gethostbyname('demo.sample.com')
我只会得到一个IP地址。为什么以这种方式显示?还有什么其他方法可以获取多个IP地址?请指导我。
提前致谢!
编辑-1
我知道了,而不是gethostbyname('demo.sample.com')
我尝试了gethostbyname_ex('demo.sample.com')
它给出了预期的结果。
谢谢大家
我正在使用处理程序在Telegram机器人中工作。在他们使用命令后,我需要在其中获取用户名或用户ID。
我的密码
import telebot #Telegram Bot API
bot = telebot.TeleBot(<BotToken>)
@bot.message_handler(commands=['info'])
def send_welcome(message):
name = bot.get_me()
print(name)
bot.reply_to(message, "Welcome")
bot.polling()
Run Code Online (Sandbox Code Playgroud)
但是,我仅获得有关该机器人的信息。我无法获取有关使用处理程序的用户的信息。
输出值
{'first_name': 'SPIOTSYSTEMS', 'id': 581614234, 'username': 'spiotsystems_bot', 'is_bot': True, 'last_name': None, 'language_code': None}
Run Code Online (Sandbox Code Playgroud)
如何获得使用info
命令的用户的用户ID或名称?我应该使用哪种方法?请指教。
注意:
我的机器人与Telegram组链接。并且出于安全原因,我已从我的MVC中删除了Telegram TOKEN。
伙计们,我正在尝试一个简单的端口扫描程序,以使用socket.connect_ex((192.169.10.1, 80))
它来验证端口是打开还是关闭,但是它想传递多个IP和端口,因此我使用了list并使用for循环对其进行了迭代。我只获得列表中第一个IP的结果,第二个IP没有给出正确的结果,而是总是运行elif块,这可能是什么问题?有人可以指导我哪里出问题了。
我的密码:
import socket
sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
iplst = ['193.169.10.100', '193.169.10.101']
ports = [80, 80]
for i,j in zip(iplst,ports):
result = sock.connect_ex((i,j))
if result == 0:
print("open" , i)
elif result != 0:
print("closed", i)
Run Code Online (Sandbox Code Playgroud)
输出:
open 193.169.10.100
closed 193.169.10.101
Run Code Online (Sandbox Code Playgroud)
但是我敢肯定,两个端口都是开放的
伙计我正在使用sqlite3和python tkinter作为前端.数据库很简单,有两个字段,用户名和密码.我想进行注册注册页面.其中两个字段中给出的数据存储在sqlite3数据库中.数据正确插入.但是,当数据库中已存在提供的用户名时,我想显示一个消息框.我尝试了下面的代码.
我的代码:
def signup():
userID = username.get()
passwd = password.get()
conn = sqlite3.connect('test.db')
c = conn.cursor()
result = c.execute("SELECT * FROM userstable")
for i in result:
if i[0] == userID:
messagebox.showerror("DUPLICATE", "USER ALREADY EXISTS!")
else:
conn = sqlite3.connect('test.db')
c = conn.cursor()
c.execute("INSERT INTO userstable VALUES (?, ?)", (userID, passwd))
conn.commit()
c.close()
conn.close()
username.delete(0,END)
password.delete(0,END)
username.focus()
messagebox.showinfo("SUCCESS", "USER CREATED SUCCESSFULLY")
Run Code Online (Sandbox Code Playgroud)
这可以工作,但仍然会在错误消息之后存储重复数据.如果用户名已经可用,我的要求是抛出错误并停止执行.如果用户名不可用,则应插入数据.
我哪里错了?有人可以通过指出来解释我,还是有其他方法可以达到这个目的?看来我需要修改一些功能.请指导我.
编辑1
如果我尝试使用三个条件,则休息不起作用.
我的代码
def data_entry():
conn = sqlite3.connect('test.db')
c = conn.cursor()
c.execute('CREATE TABLE IF …
Run Code Online (Sandbox Code Playgroud) 伙计们,我正在尝试使用 python(version - 3.5) tkinter 在 GUI 上显示带有 python 的文本文件,但是在 tkinter 的文本小部件中显示文件中的文本时我发现了一些困难。有人可以指导我如何做。
我的代码:
configfile = Text(f3, wrap=WORD, width=45, height= 20)
filename='/etc/hosts'
file = open(filename,'r')
f = file.readlines()
configfile.insert(INSERT,[print(i) for i in f])
configfile.pack(fill="none", expand=TRUE)
Run Code Online (Sandbox Code Playgroud)
注意:我现在只使用打印。我想在文本小部件中显示它而不是在 cli 中打印。此外,我省略了发布完整源代码以避免混淆,因为我对 tkinter 和 python 有点陌生。
有人请指导我如何。提前致谢 :-)
python ×6
python-3.x ×2
sockets ×2
tkinter ×2
python-2.7 ×1
sqlite ×1
telegram ×1
telegram-bot ×1