小编Sun*_*jan的帖子

ImportError:无法在python瓶中导入名称路由

我正在尝试开始学习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

3
推荐指数
1
解决办法
3679
查看次数

Python套接字gethostbyname()仅返回一个IP地址

朋友,我正在使用python套接字做一些简单的实验,其中有一个HOSTNAME可以解析为两个IP地址,但是当我使用时,

socket.gethostbyname('demo.sample.com')

我只会得到一个IP地址。为什么以这种方式显示?还有什么其他方法可以获取多个IP地址?请指导我。

提前致谢!

编辑-1

我知道了,而不是gethostbyname('demo.sample.com')
我尝试了gethostbyname_ex('demo.sample.com')
它给出了预期的结果。

谢谢大家

python sockets

3
推荐指数
1
解决办法
3585
查看次数

如何在Telegram Bot中获得用户名?

我正在使用处理程序在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。

python python-3.x telegram python-telegram-bot telegram-bot

2
推荐指数
2
解决办法
4561
查看次数

循环在socket.connect_ex()中不起作用

伙计们,我正在尝试一个简单的端口扫描程序,以使用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)

但是我敢肯定,两个端口都是开放的

python sockets

1
推荐指数
1
解决办法
2002
查看次数

如何在使用python将数据插入sqlite3时在重复条目上引发错误消息?

伙计我正在使用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 sqlite tkinter

0
推荐指数
1
解决办法
661
查看次数

如何在 python tkinter 文本小部件中显示文件的文本

伙计们,我正在尝试使用 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 tkinter python-2.7 python-3.x

-1
推荐指数
1
解决办法
1万
查看次数