python实战: 短链接生成器

项目结构:
error.html用于显示错误
index.html为主页
application.py为服务器
data.json用于保存短链接信息

参考https://blog.csdn.net/qq_36538012/article/details/82884360

error.html

<!DOCTYPE html>
<html lang="en">
<head><title>短链接生成器-错误</title><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1"><link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.4.1/css/bootstrap.min.css"><script src="https://ajax.googleapis.com/ajax/libs/jquery/3.5.1/jquery.min.js"></script><script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.4.1/js/bootstrap.min.js"></script><link rel="shortcut icon" href="https://www.easyicon.net/api/resizeApi.php?id=1207033&size=128">
</head>
<body><div class="jumbotron text-center"><h1>短链接生成器</h1><p>短链接</p>
</div><div class="container"><h3>{{info}}</h3><br><a href="/index">回到主页</a>
</div></body>
</html>

index.html

<!DOCTYPE html>
<html lang="en">
<head><title>短链接生成器</title><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1"><link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.4.1/css/bootstrap.min.css"><script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.4.1/js/bootstrap.min.js"></script><link rel="shortcut icon" href="https://www.easyicon.net/api/resizeApi.php?id=1207033&size=128">
</head>
<body><!-- 右键禁用 -->
<script>
function disableRightClick(e){if(!document.rightClickDisabled)  //  initialize{if(document.layers){document.captureEvents(Event.MOUSEDOWN);document.onmousedown = disableRightClick;}else  document.oncontextmenu = disableRightClick;return  document.rightClickDisabled =  true;}if(document.layers    ||  (document.getElementById    &&  !document.all)){if  (e.which==2||e.which==3){return false;}}else{return false;}}disableRightClick();
</script><div class="jumbotron text-center"><h1>短链接生成器</h1><p>短链接</p>
</div><!-- 禁用F12 -->
<script>/*document.oncontextmenu = function(){return false;}*/document.onkeydown=function (e){var currKey=0,evt=e||window.event;currKey=evt.keyCode||evt.which||evt.charCode;if (currKey == 123) {window.event.cancelBubble = true;window.event.returnValue = false;}}
</script><div class="container"><form action="/index" method="post"><div class="form-group"><label>请把你的长链接复制到这里:</label><input type="text" name="long" class="form-control"></div><button type="submit" class="btn btn-primary" name="okay">生成</button></form><!-- 显示短链接 -->{% if submit %}<h5>生成的短链接: </h5><a href="{{result}}" target="_blank">{{result}}</a>{% endif %}
</div>

application.py

import json
import flask
import random
import stringapp = flask.Flask(__name__)@app.route('/urls/<code>')
def redirect(code):with open('data.json', 'r', encoding='utf-8') as f:data = json.loads(f.read())url = data.get(code)if url:return flask.redirect(url)return flask.render_template('error.html', info='访问的短链接不存在!')@app.route('/index', methods=['GET', 'POST'])
def index():if flask.request.method == 'GET':return flask.render_template('index.html', submit=False, result='')else:chars = string.ascii_letters + string.digitswith open('data.json', 'r', encoding='utf-8') as f:data = json.loads(f.read())code = ''.join(random.sample(chars, 4))while code in data:code = ''.join(random.sample(chars, 4))short = f'localhost:65032/urls/{code}'long = flask.request.form.get('long')data[code] = longwith open('data.json', 'w', encoding='utf-8') as f:f.write(json.dumps(data))return flask.render_template('index.html', submit=True, result=short)app.run(host='localhost', port=65032, debug=True)

data.json

{}

python实战: 短链接生成器相关推荐

  1. java,url长链接生成短链接,短链接生成器,自定义字符串,对字符串md5混合KEY加密,根据短链接获得key值,不重复的随机数,不重复的随机字符串...

    java,url长链接生成短链接,短链接生成器,自定义字符串,对字符串md5混合KEY加密,根据短链接获得key值,不重复的随机数,不重复的随机字符串 1 package com.zdz.test; ...

  2. 短链接生成器,adf.ly、shorte.st、ouo.io、adfoc.us哪个更好,有哪些区别

    adf.ly.shorte.st.ouo.io.adfoc.us都属于短链接生成网站,且都是国外的网站 论速度来说adFoc.us个人体验是打开最快的,对国内比较友好,最慢的当属adf.ly,生成的短 ...

  3. 好用的短链接生成器,活码生成器

    近年来,随着互联网的快速发展,越来越多的企业开始采用互联网运营推广模式.运营推广是指企业通过互联网平台进行产品和服务的宣传推广,帮助企业增加销量和提高品牌知名度. 运营推广有多种方式,包括网站推广.搜 ...

  4. 短域名生成java_腾讯短链接url生成接口/腾讯短网址在线生成/新浪微博短链接生成器的分享...

    在通常情况下,URL是由系统生成的,通常包括URI路径,多个查询参数,可以对参数进行加密和解密. 当人们要分享某个URL,比如短信,邮件,社交媒体,这就需要短URL. 而短网址,顾名思义就是在长度上比 ...

  5. t.cn短链接生成 - 新浪短网址生成器压缩网址详细教程

    t.cn短链接是新浪官方的短网址工具,提供在线将长链接缩短为最短形式的t.cn链接服务,生成的短网址跳转速度和访问兼容性没有任何影响,生成好的短网址永久有效,还可以通过对接调用api接口和批量生成的方 ...

  6. 百看不如一练, 247 个 Python 实战案例!

    众所周知,我们在学习Pyhont过程中,大都看书枯燥.看视频进度慢,网上查找的学习案例又比较凌乱不成体系... 百看不如一练,今天为大家搜集了一份Python从入门到进阶的实战案例合集,共计247个案 ...

  7. 整理了200多个Python实战案例,都有完整且详细的教程

    不管是学习什么语言,最终目的都是做项目.搜遍全网,整理了200多个Python实战的小项目,都有完整的代码,以及代码中用到的数据源等等.可以直接拿来用,也可以用于学习练手寻找思路. 告别枯燥,60秒学 ...

  8. 干货满满的 Python 实战项目,点赞收藏

    作者 | 俊欣 来源 | 关于数据分析与可视化 今天小编来给大家介绍3个干货满满的计算机视觉方向的Python实战项目,主要用到的库有 opencv-python numpy pillow 要是大家所 ...

  9. python语言type board_菜鸟学Python,双手奉上老司机给上路新手总结的Python实战问题……...

    针对Python这一话题每天后台都会有不少小伙伴提出问题,下面我就将这些问题进行汇整,产出"Python实战问题篇",我认为这些问题非常具有代表性,希望可以帮到大家. 第一类问题: ...

最新文章

  1. 深度学习进阶:多分类与TensorFlow
  2. MATLAB【九】————ICP算法实现
  3. 无需安装的CLI才是最好的
  4. opencv 计数后不动了 训练模型时_用OpenCV和深度学习进行年龄识别
  5. java面板如何设置大小_java面板调整大小问题
  6. c语言的变量,常量及作用域等
  7. ecshop商品列表页增加/显示货号SN
  8. keil5图标变成白色_图标设计全方位解读
  9. GB28181协议——布防和报警订阅
  10. oracle添加字段sql并添加注释
  11. 苹果开发者账号申请流程
  12. untiy下连接photon
  13. 大话云原生数据库中的存算分离
  14. Kafka消息积压案例分析
  15. c语言求幸运数字程序,算法题挑选幸运数字,该如何处理
  16. 单例设计模式(拉勾教育大数据学习笔记)
  17. 花生wifi后台管理系统项目日记
  18. 大公司的内部创业,寻求新的增长动能
  19. pydicom读取头文件_.dcm格式文件软件读取及python处理详解
  20. 数据挖掘之stacking模型融合(以阿里妈妈广告点击率预估比赛为例)

热门文章

  1. 安全测试简述/安全审计工具
  2. html表格一行设置颜色,更改表格中一行的颜色,html
  3. dump和coredump
  4. 错误:error LNK2005 解决方法
  5. adb删除软件_苹果免越狱如何安装ipa 苹果免越狱安装软件安装教程【详解】
  6. Smart3D初学者第二步:三维模型重建(1)
  7. TERMIN汤铭,FE8.1芯片一进四出扩展坞(HUB)集线器芯片。
  8. 浏览器窗口切换(从一个页面切换到另一个页面并且不刷新)
  9. 沪江python全栈开发_【沪江技术沙龙】 -- 大规模Node.js应用
  10. 儿童定位手表app定制开发有哪些功能