Beispiel #1
0
def start_test_server():
    pywebio.enable_debug()
    start_server([corobased, partial(threadbased)],
                 port=8080,
                 host='127.0.0.1',
                 debug=True,
                 cdn=False)
Beispiel #2
0
def start_test_server():
    pywebio.enable_debug()
    start_server(target,
                 port=8080,
                 host='127.0.0.1',
                 auto_open_webbrowser=False,
                 cdn=False)
Beispiel #3
0
def start_test_server():
    pywebio.enable_debug()
    start_server({
        'coro': corobased,
        'thread': threadbased
    },
                 port=8080,
                 host='127.0.0.1',
                 debug=True)
Beispiel #4
0
        if new == 0:
            data = df
        else:
            data = df.rolling('{0}D'.format(new)).mean()
        source.data = ColumnDataSource.from_df(data)

    slider = Slider(start=0, end=30, value=0, step=1, title="Smoothing by N Days")
    slider.on_change('value', callback)

    doc.add_root(column([slider, plot], sizing_mode='stretch_width'))


def main():
    output_notebook(verbose=False, notebook_type='pywebio')

    put_markdown("""# Bokeh Applications in PyWebIO
    
    [Bokeh Applications](https://docs.bokeh.org/en/latest/docs/user_guide/server.html) 支持向图表的添加按钮、输入框等交互组件,并向组件添加Python回调,从而创建可以与Python代码交互的可视化图表。
    
    在PyWebIO中,你也可以使用 `bokeh.io.show()` 来显示一个Bokeh App,和输出普通图表一样,只需要在会话开始时调用 `bokeh.io.output_notebook(notebook_type='pywebio')` 来设置PyWebIO输出环境。
    
    以下为一个 Bokeh App demo:
    
    """, lstrip=True)

    show(bkapp)


if __name__ == '__main__':
    start_server(main, port=8080, debug=True)
from pywebio import start_server
from utils import IMAGE_TO_LINK


def create_text():
    put_markdown("# Can Dinosaur and Circle Have the Same Statistics?")
    put_text(
        "Two datasets with the same mean, standard deviation, and correlation "
        "could be very different.\n\n"
        "To test this idea, choose a starting shape and a target shape. The starting shape"
        " will transform into the target shape while keeping the same statistics."
    )


def app():
    create_text()
    start_shapes = ['dino', 'big_slant']
    target_shapes = [
        'x', 'h_lines', 'v_lines', 'wide_lines', 'high_lines', 'slant_up',
        'slant_down', 'center', 'star', 'down_parab', 'circle', 'bullseye',
        'dots'
    ]

    start_shape = select(label='start_shape', options=start_shapes)
    target = select(label='target', options=target_shapes)
    put_image(IMAGE_TO_LINK[f'{start_shape}_{target}.gif'], width='100%')


if __name__ == '__main__':
    start_server(app, debug=True, port='44315')
Beispiel #6
0
from pywebio import start_server

from . import cutecharts

if __name__ == '__main__':
    start_server(cutecharts, debug=True, port=8080)
			# Text Output
		put_text(" ~~~~~~~~~~~~~~~~~~~  Check related questions above for query no", count ,"~~~~~~~~~~~~~~~~~~~~~~~~")


		flag2 = radio("You wanna give feedback :", options=['yes', 'no'])
		print("flag2 :",flag2)
		if (flag2=="yes"):
			#flag2=1

			# Multi-line text input
			text = textarea('Feedback on our output if any', rows=3, placeholder='Some text')
			print("some text :",text)
		flag = radio("You wanna continue again :", options=['yes', 'no'])
		print("flag :", flag)

		
		if (flag=="yes"):
			flag = 1
		else:
			flag = 0
			clear()
			put_markdown(""" # ~~~~~~  Thanks for using our WEB APP ~~~~~~~""", strip_indent=10)
			exit(0)
			
			
if __name__=="__main__":
	server = start_server(app, port = 3000, debug = True)
	print("server:", server)
	
				
Beispiel #8
0
    if q2 == "The value of the gradient at extrema of a function is always zero":
        c += 1

    if q3 == "Decision trees are prone to be overfit":
        c += 1

    if q4 == "Normalize the data -> PCA -> training":
        c += 1

    if q5 == "Stop Word Removal":
        c += 1

    if c > 3:
        put_markdown("""# you are passed""")

    if c <= 3:
        put_markdown("""# you are failed""")


app.add_url_rule('/tool',
                 'webio_view',
                 webio_view(main),
                 methods=['GET', 'POST', 'OPTIONS'])

if __name__ == '__main__':
    parser = argparse.ArgumentParser()
    parser.add_argument("-p", "--port", type=int, default=8080)
    args = parser.parse_args()

    start_server(main, port=args.port)
Beispiel #9
0
from pywebio import hold, go_app, start_server
from pywebio.output import put_text, put_buttons, put_link


def task_1():
    put_text('task_1')
    put_buttons(['Go task 2'], [lambda: go_app('task_2')])
    hold()


def task_2():
    put_text('task_2')
    put_buttons(['Go task 1'], [lambda: go_app('task_1')])
    hold()


def index():
    put_link('Go task 1', app='task_1')  # 使用app参数指定任务名
    put_link('Go task 2', app='task_2')


start_server([
    index, task_1, task_2
])  # 或 start_server({'index': index, 'task_1': task_1, 'task_2': task_2})
Beispiel #10
0
        # Canceled
        if data is None:
            current_user.skip()
            continue

        # Host logic
        if data.get('host_op') == '开始游戏':
            await room.start_game()
        if data.get('host_vote_op'):
            await room.vote_kill(data.get('host_vote_op'))
        # Wolf logic
        if data.get('wolf_team_op'):
            current_user.wolf_kill_player(nick=data.get('wolf_team_op'))
        # Detective logic
        if data.get('detective_team_op'):
            current_user.detective_identify_player(nick=data.get('detective_team_op'))
        # Witch logic
        if data.get('witch_team_op'):
            if data.get('witch_mode') == '解药':
                current_user.witch_heal_player(nick=data.get('witch_team_op'))
            elif data.get('witch_mode') == '毒药':
                current_user.witch_kill_player(nick=data.get('witch_team_op'))
        # Guard logic
        if data.get('guard_team_op'):
            current_user.guard_protect_player(nick=data.get('guard_team_op'))


if __name__ == '__main__':
    logger.info(f"狼人杀服务器启动成功!可以通过在浏览器内输入 http://{get_interface_ip()} 来加入游戏")
    start_server(main, debug=False, host='0.0.0.0', port=80, cdn=False)
Beispiel #11
0
 def start(self):
     start_server(self.appList, port=self.port, debug=True, cdn=False)
Beispiel #12
0
from pywebio import start_server, hold
from pywebio.output import put_text, output, put_scrollable
from pywebio.input import input, input_group


def outp(out, il):
    print("output")


    out.append("1234567")

    out.append("1234567yhgv")

    out.append(il["aaa"])


def index():
    print("run")
    put_text("12345")
    out = output()
    put_scrollable(out, keep_bottom=True)

    while True:
        il = input_group("233", [input(name="aaa", value="23456")])
        outp(out, il)



start_server(index, port=8899)
Beispiel #13
0
        
    注意:集群至少含有两个节点才可以正常工作
    
    示例:
        # 初始化两个节点的Raft集群 
        python3 app.py 127.0.0.1:8101 127.0.0.1:8100
        python3 app.py 127.0.0.1:8100 127.0.0.1:8101
    
    2. 加入现有的Raft集群:
        
        python3 app.py  # 在弹出的浏览器中设置本节点和集群节点地址
    
    支持的环境变量
    WEB_PORT 聊天室界面的端口
    """
    import sys

    cluster = sys.argv[1:]

    if cluster:
        raft_addr = cluster[0]
        cluster = cluster[1:]
    else:
        raft_addr = None
        cluster = None

    start_server(partial(main, raft_addr=raft_addr, cluster=cluster),
                 debug=False,
                 auto_open_webbrowser=True,
                 port=int(os.environ.get("WEB_PORT", 0)))
from pywebio import start_server

from . import bokehs

if __name__ == '__main__':
    start_server(bokehs, debug=True, port=8080, cdn=False)
Beispiel #15
0
        return pd.DataFrame(data[1:], columns=data[0])
    else:
        return pd.DataFrame(data)


def t(eng, rus):
    return rus if 'ru' in session_info.user_language else eng


def create_profile(df: pd.DataFrame = None, title: Optional[str] = 'Title'):
    profile = None
    with put_loading(shape='grow'):
        report = sv.analyze(df)
        # NOTE: Line below will take some time to complete...
        profile = report.show_html(layout='vertical')
    if profile:
        print(session_info.user_language)
        put_html(profile)
    else:
        put_markdown(t(
            r"""
                ## <p align="middle">_Errors occured analyzing the \"csv\" file._</p>
                """, r"""
                ## <p align="middle">_При анализе загруженного \"csv\" файла возникли ошибки._</p>
                """),
                     strip_indent=4)


if __name__ == '__main__':
    start_server(app, port=37791, debug=False, cdn=False)
Beispiel #16
0
        hold()


def dead(name):
    with use_scope('dead', if_exist='remove'):
        clear_scope('dead')
        put_text('HELLO %s, WELCOME TO CHILD MODE' % name)
        put_text('今天吃大餐,明天領藥單')
        put_buttons(['重新搜尋'], onclick=[whoAreYou])
        food = search_food('dead')
        hold()


def whoAreYou():
    with use_scope('whoAreYou', if_exist='remove'):
        global name
        img = open('eatago_logo.jpg', 'rb').read()
        style(put_image(img, width='300px'), 'display: flex'
              'justify-content: center')
        if name == '':
            name = input("What is your name?",
                         type=TEXT,
                         placeholder='Annie',
                         required=True)
        choose_eat_type(name)
        #hold()
        # put_image()


start_server(whoAreYou, auto_open_webbrowser=True)
Beispiel #17
0
            data = df
        else:
            data = df.rolling('{0}D'.format(new)).mean()
        source.data = ColumnDataSource.from_df(data)

    slider = Slider(start=0,
                    end=30,
                    value=0,
                    step=1,
                    title="Smoothing by N Days")
    slider.on_change('value', callback)

    doc.add_root(column([slider, plot], sizing_mode='stretch_width'))


def bk_app():
    output_notebook(verbose=False, notebook_type='pywebio')

    put_markdown("""# Bokeh Applications in PyWebIO
    [Bokeh Applications](https://docs.bokeh.org/en/latest/docs/user_guide/server.html) can be built by starting the Bokeh server. The purpose of the Bokeh server is to make it easy for Python users to create interactive web applications that can connect front-end UI events to real, running Python code.
    In PyWebIO, you can also use bokeh.io.show() to display a Bokeh App.
    You can use `bokeh.io.output_notebook(notebook_type='pywebio')` in the PyWebIO session to setup Bokeh environment. Then you can use `bokeh.io.show()` to output a boken application.
    This is a demo of Bokeh App: 
    """)

    show(bkapp)


if __name__ == '__main__':
    start_server(bk_app, port=8080, debug=True)
Beispiel #18
0
            ])

        put_markdown('----')

    hold()


def get_app():
    """PyWebIO demos from document

    Run the demos from the document online.
    """
    app = {}
    try:
        demos = listdir(path.join(here_dir, 'doc_demos'))
    except Exception:
        demos = []

    for name in demos:
        code = open(path.join(here_dir, 'doc_demos', name)).read()
        title, code = code.split('\n\n', 1)
        app[name] = partial(handle_code, code=code, title=title)
        app[name] = seo('', title, app[name])

    return app


if __name__ == '__main__':
    a = get_app()
    start_server(get_app(), debug=True, port=8080, cdn=False)
Beispiel #19
0
        #Prediction: "+str(result)
        img = open('output_img.jpg', 'rb').read()
        style(put_text('Middle frame from Video'), 'text-align: center')
        style(put_image(img, width='500px'),
              'display: block; margin-left: auto; margin-right: auto')
        fig = go.Figure([go.Bar(x=animals, y=list_final)])
        html = fig.to_html(include_plotlyjs="require", full_html=False)
        put_text('\n')
        style(put_text('Prediction Graph'), 'text-align: center')
        style(put_html(html), 'margin: auto')

        end = time.time()
        print("Time elapsed:", end - start)
        print(list_final)
        # put_text(tesxt)

        style(put_text('Prediction:'), 'text-align: center')
        style(put_text(str(result)), 'font-size: 200%;text-align: center')


app.add_url_rule('/tool',
                 'webio_view',
                 webio_view(predict),
                 methods=['GET', 'POST', 'OPTIONS'])

if __name__ == '__main__':
    parser = argparse.ArgumentParser()
    parser.add_argument("-p", "--port", type=int, default=8080)
    args = parser.parse_args()
    start_server(predict, port=args.port)
Beispiel #20
0
        await get_result(
            'tar x{type}vf rootfs/{name}.tar.{ext} -C rootfs/{name}'.format(type='J' if ext == 'xz' else 'gz',
                                                                            name=name, ext=ext))
        popup('正在清理……')
        await get_result('rm -f rootfs/{}.tar.{}'.format(name, ext))
        popup('正在创建配置……')
        conf_template = '''
        if [ -z $1 ]; then
            {command} rootfs/{name}/ /bin/bash
        else
        {command} rootfs/{name}/ /bin/sh -c $1
        fi
        '''
        await get_result(
            'echo {cmd} > cmd/{name} && chmod +x cmd/{name}'.format(
                cmd=conf_template.format(command=command, name=name), name=name))


# Server Port 关于服务器的配置信息
if __name__ == "__main__":
    env = os.getenv('FLYOS')
    if env is None:
        env = '.'
    path = os.path.abspath(env + '/deploylinux')
    if not os.path.exists(os.path.abspath(path + "/rootfs")):
        os.mkdir(os.path.abspath(path + "/rootfs"))
    if not os.path.exists(os.path.abspath(path + "/cmd")):
        os.mkdir(os.path.abspath(path + "/cmd"))
    start_server(main, debug=True, host="0.0.0.0", port=2002)
    pywebio.session.hold()
Beispiel #21
0
def start_test_server():
    pywebio.enable_debug()
    start_server(target, port=8080, host='127.0.0.1', cdn=False)
Beispiel #22
0
    for i in range(15, -1, -1):
        put_text('来自主协程的倒计时:%s' % i)
        await asyncio.sleep(1)

    await asyncio.sleep(2)

    put_markdown("""
    <hr/>

    以上大概就是 PyWebIO 的所有特性了,如果觉得还不错的话,可以 Give me a 🌟 in <a href="https://github.com/wang0618/PyWebIO" target="_blank">Github</a>

    PS: <a href="https://github.com/wang0618/PyWebIO/blob/master/pywebio/demos/overview-zh.py" target="_blank">在这里</a>你可以找到生成本页面的脚本
    PPS:开头提到的彩蛋揭晓:"用自己来介绍自己"很具计算机领域风格,对此发挥至极的是<a href="https://en.wikipedia.org/wiki/Quine_(computing)" target="_blank">Quine</a>的概念,"A quine is a program which prints a copy of its own as the only output. "
    """,
                 strip_indent=4)


if __name__ == '__main__':
    parser = argparse.ArgumentParser(description='PyWebIO Overview demo')
    parser.add_argument('--host', default='localhost', help='server bind host')
    parser.add_argument('--port', type=int, default=0, help='server bind port')
    args = parser.parse_args()

    start_server(feature_overview,
                 debug=True,
                 auto_open_webbrowser=True,
                 host=args.host,
                 port=args.port,
                 allowed_origins=['http://localhost:63342'])
Beispiel #23
0
    chart.set_options(dot_size=2, y_tick_count=8)
    chart.add_series("series-A",
                     [(z[0], z[1])
                      for z in zip(Faker.values(), Faker.values())])
    chart.add_series("series-B",
                     [(z[0], z[1])
                      for z in zip(Faker.values(), Faker.values())])
    return chart


def scatter_show_line():
    chart = Scatter("Scatter-散点连成线", width="100%")
    chart.set_options(y_tick_count=8, is_show_line=True)
    chart.add_series("series-A",
                     [(z[0], z[1])
                      for z in zip(Faker.values(), Faker.values())])
    chart.add_series("series-B",
                     [(z[0], z[1])
                      for z in zip(Faker.values(), Faker.values())])
    return chart


def main():
    page = Page()
    page.add(scatter_base(), scatter_dotsize_tickcount(), scatter_show_line())
    put_html(page.render_notebook())


if __name__ == '__main__':
    start_server(main, debug=True, port=8080)
Beispiel #24
0
    defff_type = select('diferentiation scheme Type',
                        ['forwrd', 'backwrd', 'central'])
    if (defff_type == 'forwrd'):
        defff_type = forwrd()

    elif (defff_type == 'backwrd'):
        defff_type = backwrd()

    elif (defff_type == 'central'):
        defff_type = central()

    bmi = deff_type


app.add_url_rule('/tool',
                 'webio_view',
                 webio_view(bmi),
                 methods=['GET', 'POST',
                          'OPTIONS'])  # need GET,POST and OPTIONS methods

# app.run(host='localhost', port=500)
if __name__ == '__main__':
    import argparse

    parser = argparse.ArgumentParser()
    parser.add_argument("-p", "--port", type=int, default=800)
    args = parser.parse_args()

    start_server(bmi, port=args.port)
Beispiel #25
0
    
    ## BMI指数计算器
    本程序的源代码[链接](https://github.com/wang0618/PyWebIO/blob/dev/demos/bmi.py)
    
    """),
                 strip_indent=4)

    info = input_group(t('BMI calculation', '计算BMI:'), [
        input(t("Your Height(cm)", "请输入你的身高(cm)"), name="height", type=FLOAT),
        input(t("Your Weight(kg)", "请输入你的体重(kg)"), name="weight", type=FLOAT),
    ])

    BMI = info['weight'] / (info['height'] / 100)**2

    top_status = [(14.9, t('Severely underweight', '极瘦')),
                  (18.4, t('Underweight', '偏瘦')), (22.9, t('Normal', '正常')),
                  (27.5, t('Overweight', '过重')),
                  (40.0, t('Moderately obese', '肥胖')),
                  (float('inf'), t('Severely obese', '非常肥胖'))]

    for top, status in top_status:
        if BMI <= top:
            put_markdown(
                t('Your BMI: `%.1f`, Category: `%s`',
                  '你的 BMI 值: `%.1f`,身体状态: `%s`') % (BMI, status))
            break


if __name__ == '__main__':
    start_server(main)
Beispiel #26
0
import pywebio
from pywebio.input import input, FLOAT
from pywebio.output import put_text, put_html, put_markdown, put_table

def bmi():
    height = input("Input your height(cm):", type=FLOAT)
    weight = input("Input your weight(kg):", type=FLOAT)

    BMI = weight / (height / 100) ** 2

    top_status = [(16, 'Severely underweight'), (18.5, 'Underweight'),
                  (25, 'Normal'), (30, 'Overweight'),
                  (35, 'Moderately obese'), (float('inf'), 'Severely obese')]

    for top, status in top_status:
        if BMI <= top:
            put_markdown('# **Results**')
            put_html('<br><br>')
            put_markdown('Your BMI: `%.1f`. Category: `%s`' % (BMI, status))
            put_html('<hr>')
            put_table([
                ['Your BMI', 'Category'],
                [BMI, status],
            ])

            break

if __name__ == '__main__':
    pywebio.start_server(bmi, port=55)
Beispiel #27
0
    
    ## BMI指数计算器
    本程序的源代码[链接](https://github.com/wang0618/PyWebIO/blob/dev/demos/bmi.py)
    
    """),
                 strip_indent=4)

    info = input_group(t('BMI calculation', '计算BMI:'), [
        input(t("Your Height(cm)", "请输入你的身高(cm)"), name="height", type=FLOAT),
        input(t("Your Weight(kg)", "请输入你的体重(kg)"), name="weight", type=FLOAT),
    ])

    BMI = info['weight'] / (info['height'] / 100)**2

    top_status = [(14.9, t('Severely underweight', '极瘦')),
                  (18.4, t('Underweight', '偏瘦')), (22.9, t('Normal', '正常')),
                  (27.5, t('Overweight', '过重')),
                  (40.0, t('Moderately obese', '肥胖')),
                  (float('inf'), t('Severely obese', '非常肥胖'))]

    for top, status in top_status:
        if BMI <= top:
            put_markdown(
                t('Your BMI: `%.1f`, Category: `%s`',
                  '你的 BMI 值: `%.1f`,身体状态: `%s`') % (BMI, status))
            break


if __name__ == '__main__':
    start_server(main, debug=True, port=8080, cdn=False)
Beispiel #28
0
               options=FONTS,
               value='Arial',
               name='font'),
        input("Select your text size", value='16', type=NUMBER, name='size')
    ])


def create_page(pdf, text: str, font: str, size: int):
    pdf.add_page()
    pdf.set_font(font, '', size)

    lines = text.split('\n')
    for i, sent in enumerate(lines):
        pdf.cell(40, 10, sent, 0, i + 1)


def create_pdf(pages: list,
               font: str,
               size: int,
               save_location: str = "output.pdf"):

    pdf = FPDF()
    for page in pages:
        create_page(pdf, page, font, size)

    pdf.output(save_location, 'F')


if __name__ == '__main__':
    start_server(app, port=36535, debug=True)
Beispiel #29
0
    put_text('FlyOS Panel By:XingYuJie', sep=' ')
    popup(
        '欢迎使用FlyOS Panel!', '欢迎使用FlyOS WEB Panel!'
        '如果程序有Bug,'
        '请务必提交到邮箱:[email protected]谢谢!'
        '程序由MicroTech Projects -- FlyOS强力驱动')
    put_link("web终端", url=f'http://{get_host_ip()}:7681')
    put_text('_______________________', sep=' ')
    put_link("VM虚拟机", url=f'http://{get_host_ip()}:8002')
    put_text('_______________________', sep=' ')
    put_link("vscode", url=f'http://{get_host_ip()}:2001')
    put_text('_______________________', sep=' ')
    put_link("Apache主页", url=f'http://{get_host_ip()}:8080')
    put_text('_______________________', sep=' ')
    put_link("Nginx主页", url=f'http://{get_host_ip()}:8088')
    put_text('_______________________', sep=' ')
    put_link("HTTP文件服务器", url=f'http://{get_host_ip()}:8081')
    put_text('_______________________', sep=' ')
    put_link("jupyter notebook", url=f'http://{get_host_ip()}:2000')
    put_text('_______________________', sep=' ')
    put_link("FlyOS桌面环境", url=f'http://{get_host_ip()}:6081/vnc.html')
    put_text('_________系统工具__________', sep=' ')
    put_link("FlyOS AM调用 ", url=f'http://{get_host_ip()}:5000')
    put_text('_______________________', sep=' ')
    put_link("FlyOS Termux:API调用 ", url=f'http://{get_host_ip()}:5002')


if __name__ == '__main__':
    start_server(main, debug=True, host='0.0.0.0', port=8888)
    pywebio.session.hold()
Beispiel #30
0
def main():
    start_server(page, port=8080, auto_open_webbrowser=True)