python实战项目——设计网页抽奖

        乘着有时间再整一整,今天的项目是设计网页抽奖,上一个爬小说数据相当于计算机冒充人类想服务器请求,并保存收到的要求数据,这里设计网页抽奖,就需要自己设计一个网页,同时抽奖是别人来抽,就是别人发送请求了,这时候服务器就变成了我们的电脑,话不多说,开整!

        首先让我们的电脑变成服务器需要用到的函数库是FLASK和render_template,前者就是python中的一个类,用于我们实例化我们自己的网站,感觉就像是一个变身器,把我们的电脑变成一个服务器的感觉。

from flask import redirect,url_for,Flask,render_template
from random import  randint
app = Flask(__name__)

        然后先搭起来整体的框架,为了方便代码实时修改,用了.run函数里面的debug参数,放在最后就行,有的代码会加一个__name__=__main__,防止在调用这个文件的时候运行我们设置的服务器吧也许,等碰到了我在改吧,反正是放在最后的,这时候运行代码就会出现网址了,点开跳转后404,原因也不知道,可能没设置内容?

app.run(debug=True)

        之后就要搭建我们自己的网站,这里用到了@app.route函数,这个说是个装饰器,有时间再看吧,感觉就像是设置一个暗号,客户端(浏览器)向我们发送网址加上这个代号后,就可以进入我们的网站啦,注意这个函数后面必须要跟着def定义,且名称一般和route内一致,习惯……,后面可以我们服务器的处理和返回值,可以是字符串,或者一个html语言结构的内容。

def index():
    #return ”hello!"
    return render_template('index.html',hero1 = hero)#表示将html中的hero1替换成python中的hero

        这里的render_template作为沟通html代码和python程序的语言,hero1就是html里面预先设置的空缺,用这个函数可以用python里面我们自己的列表hero替代,这里index.html是文件,要放在template文件夹里面,它默认从这里面找,vscode和pycharm的定义方式不一样。

def choujiang():
    num = randint(0,len(hero))
    return render_template('index.html',h = hero[num])

        这里和上面的意思一样,不多赘述了,下面介绍一些html的内容

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
    {{ hero1 }}<br/>
    <a href="/choujiang">随机抽取</a><br/>
    您抽到了:{{ h }}
</body>
</html>

        里面换行啊之类的就不多说了,和之前认识的不一样的就是像{{}}这样的“留坑”函数,href是超链接,别的没啥了 ,以后再深入。

#coding=utf-8
#让我们的电脑可以支持服务范根
#需要一个web框架
# 使用到flask库

from flask import redirect,url_for,Flask,render_template
from random import  randint
app = Flask(__name__)#Flask类只有一个必须指定的参数,即程序主模块或者包的名字,__name__是系统变量,该变量指的是本py文件的文件名"""
#Flask是一个类

hero = [
'黑暗之女','狂战士','正义巨像','卡牌大师','德邦总管','无畏战车','诡术妖姬','猩红收割者','远古恐惧','正义天使','无极剑圣','牛头酋长','符文法师','亡灵战神','战争女神','众星之子','迅捷斥候','麦林炮手','祖安怒兽','雪原双子','赏金猎人','寒冰射手','蛮族之王','武器大师','堕落天使','时光守护者','炼金术士','痛苦之拥','瘟疫之源','死亡颂唱者','虚空恐惧','殇之木乃伊','披甲龙龟','冰晶凤凰','恶魔小丑','祖安狂人','琴瑟仙女','虚空行者','刀锋舞者','风暴之怒','海洋之灾','英勇投弹手','天启者','瓦洛兰之盾','邪恶小法师','巨魔之王','诺克萨斯统领','皮城女警','蒸汽机器人','熔岩巨兽','不祥之刃','永恒梦魇','扭曲树精','荒漠屠夫','德玛西亚皇子','蜘蛛女皇','发条魔灵','齐天大圣','复仇焰魂','盲僧','暗夜猎手','机械公敌','魔蛇之拥','水晶先锋','大发明家','沙漠死神','狂野女猎手','兽灵行者','圣锤之毅','酒桶','不屈之枪','探险家','铁铠冥魂','牧魂人','离群之刺','狂暴之心','德玛西亚之力','曙光女神','虚空先知','刀锋之影','放逐之刃','深渊巨口','暮光之眼','光辉女郎','远古巫灵','龙血武姬','九尾妖狐','法外狂徒','潮汐海灵','不灭狂雷','傲之追猎者','惩戒之箭','深海泰坦','机械先驱','北地之怒','无双剑姬','爆破鬼才','仙灵女巫','荣耀行刑官','战争之影','虚空掠夺者','诺克萨斯之手','未来守护者','冰霜女巫','皎月女神','德玛西亚之翼','暗黑元首','铸星龙王','影流之镰','暮光星灵','荆棘之兴','虚空之女','星籁歌姬','迷失之牙','生化魔人','疾风剑豪','虚空之眼','岩雀','青钢影','影哨','虚空女皇','弗雷尔卓德之心','戏命师','永猎双子','祖安花火','暴走萝莉','河流之王','狂厄蔷薇','破败之王','涤魂圣枪','圣枪游侠','影流之主','暴怒骑士','时间刺客','元素女皇','皮城执法官','暗裔剑魔','唤潮鲛姬','沙漠皇帝','魔法猫咪','沙漠玫瑰','魂锁典狱长','海兽祭司','虚空遁地兽','翠神','复仇之矛','星界游神','万花通灵','残月之肃','镕铁少女','血港鬼影','愁云使者','封魔剑魂','腕豪','含羞蓓蕾','灵罗娃娃','炼金男爵','不羁之悦','纳祖芒荣耀','炽炎雏龙','明烛','异画师','百裂冥犬'
]

#需要建立程序和url的关系(过程称为路由),通过name定义的app感觉就像是我们电脑出来的那一串网址,route就是通过在这个前缀后加东西,形成新的网址
#后续新的网址布局就是通过html写,里面有{{}}之类为python填坑的设置
#render_template就是python沟通和寻找设置的html格式,并用python代替html内的坑
@app.route('/index')
def index():
    #return ”hello!"
    return render_template('index.html',hero1 = hero)#表示将html中的hero1替换成python中的hero

#html里面设置一个超链接,把这个链接连接到新的我们设置的网址
#这样就可以在这个网址中呈现我们要的东西
@app.route('/choujiang')
def choujiang():
    num = randint(0,len(hero))
    return render_template('index.html',h = hero[num])
#从这里可以大胆猜测,@app.route('URL')的功能,就是程序运行起来,然后输入这里的URL,页面上显示函数的return值。
#route后面只能跟着def或者@,一般名字和def定义的函数一致

app.run(debug=True)#debug=true可以改完代码后不用再重新运行,run表示运行这个服务器(我们的电脑)



# Running on http://127.0.0.1:5000 到0.1表示访问到自己这台电脑,后面的:5000表示定位到flask服务上

        里面爬英雄名字用到了xpathhelper插件,设置名字之间的‘’,用到了sublime软件,这个真不会了……

        至于没讲到的redirect函数和url_for函数,通过查资料,感觉前者就像是一个更大的超链接,原本客户发送https:……/index,我们就向他发送我们设置好的页面,现在用redirect,客户发别的暗号,我们也给他们发这个页面。

        url_for实在看不了了……

#coding=utf-8
#让我们的电脑可以支持服务范根
#需要一个web框架
# 使用到flask库

from flask import redirect,url_for,Flask,render_template
from random import  randint
app = Flask(__name__)#Flask类只有一个必须指定的参数,即程序主模块或者包的名字,__name__是系统变量,该变量指的是本py文件的文件名"""
#Flask是一个类

hero = [
'黑暗之女','狂战士','正义巨像','卡牌大师','德邦总管','无畏战车','诡术妖姬','猩红收割者','远古恐惧','正义天使','无极剑圣','牛头酋长','符文法师','亡灵战神','战争女神','众星之子','迅捷斥候','麦林炮手','祖安怒兽','雪原双子','赏金猎人','寒冰射手','蛮族之王','武器大师','堕落天使','时光守护者','炼金术士','痛苦之拥','瘟疫之源','死亡颂唱者','虚空恐惧','殇之木乃伊','披甲龙龟','冰晶凤凰','恶魔小丑','祖安狂人','琴瑟仙女','虚空行者','刀锋舞者','风暴之怒','海洋之灾','英勇投弹手','天启者','瓦洛兰之盾','邪恶小法师','巨魔之王','诺克萨斯统领','皮城女警','蒸汽机器人','熔岩巨兽','不祥之刃','永恒梦魇','扭曲树精','荒漠屠夫','德玛西亚皇子','蜘蛛女皇','发条魔灵','齐天大圣','复仇焰魂','盲僧','暗夜猎手','机械公敌','魔蛇之拥','水晶先锋','大发明家','沙漠死神','狂野女猎手','兽灵行者','圣锤之毅','酒桶','不屈之枪','探险家','铁铠冥魂','牧魂人','离群之刺','狂暴之心','德玛西亚之力','曙光女神','虚空先知','刀锋之影','放逐之刃','深渊巨口','暮光之眼','光辉女郎','远古巫灵','龙血武姬','九尾妖狐','法外狂徒','潮汐海灵','不灭狂雷','傲之追猎者','惩戒之箭','深海泰坦','机械先驱','北地之怒','无双剑姬','爆破鬼才','仙灵女巫','荣耀行刑官','战争之影','虚空掠夺者','诺克萨斯之手','未来守护者','冰霜女巫','皎月女神','德玛西亚之翼','暗黑元首','铸星龙王','影流之镰','暮光星灵','荆棘之兴','虚空之女','星籁歌姬','迷失之牙','生化魔人','疾风剑豪','虚空之眼','岩雀','青钢影','影哨','虚空女皇','弗雷尔卓德之心','戏命师','永猎双子','祖安花火','暴走萝莉','河流之王','狂厄蔷薇','破败之王','涤魂圣枪','圣枪游侠','影流之主','暴怒骑士','时间刺客','元素女皇','皮城执法官','暗裔剑魔','唤潮鲛姬','沙漠皇帝','魔法猫咪','沙漠玫瑰','魂锁典狱长','海兽祭司','虚空遁地兽','翠神','复仇之矛','星界游神','万花通灵','残月之肃','镕铁少女','血港鬼影','愁云使者','封魔剑魂','腕豪','含羞蓓蕾','灵罗娃娃','炼金男爵','不羁之悦','纳祖芒荣耀','炽炎雏龙','明烛','异画师','百裂冥犬'
]

#需要建立程序和url的关系(过程称为路由),通过name定义的app感觉就像是我们电脑出来的那一串网址,route就是通过在这个前缀后加东西,形成新的网址
#后续新的网址布局就是通过html写,里面有{{}}之类为python填坑的设置
#render_template就是python沟通和寻找设置的html格式,并用python代替html内的坑
@app.route('/index')
def index():
    #return ”hello!"
    return render_template('index.html',hero1 = hero)#表示将html中的hero1替换成python中的hero


@app.route('/redirect')
def get_redirect():
    return redirect('/index',code=302,Response=None)




#html里面设置一个超链接,把这个链接连接到新的我们设置的网址
#这样就可以在这个网址中呈现我们要的东西
@app.route('/choujiang')
def choujiang():
    num = randint(0,len(hero))
    return render_template('index.html',h = hero[num])
#从这里可以大胆猜测,@app.route('URL')的功能,就是程序运行起来,然后输入这里的URL,页面上显示函数的return值。
#route后面只能跟着def或者@,一般名字和def定义的函数一致

app.run(debug=True)#debug=true可以改完代码后不用再重新运行,run表示运行这个服务器(我们的电脑)



# Running on http://127.0.0.1:5000 到0.1表示访问到自己这台电脑,后面的:5000表示定位到flask服务上

  • 8
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值