├── .gitignore ├── Day01-15 ├── Day01 │ ├── code │ │ ├── hello.py │ │ └── peppa_pig.py │ ├── res │ │ ├── python-idle.png │ │ ├── python-ipython.png │ │ ├── python-jupyter-1.png │ │ ├── python-jupyter-2.png │ │ ├── python-pycharm.png │ │ └── python-sublime.png │ └── 初识Python.md ├── Day02 │ ├── code │ │ ├── centigrade.py │ │ ├── circle.py │ │ ├── leap.py │ │ ├── operator.py │ │ ├── string.py │ │ ├── variable1.py │ │ ├── variable2.py │ │ ├── variable3.py │ │ ├── variable4.py │ │ └── variable5.py │ └── 语言元素.md ├── Day03 │ ├── code │ │ ├── convert.py │ │ ├── grade.py │ │ ├── piecewise.py │ │ ├── rolldice.py │ │ ├── tax.py │ │ ├── triangle.py │ │ └── verify.py │ └── 分支结构.md ├── Day04 │ ├── code │ │ ├── for1.py │ │ ├── for2.py │ │ ├── for3.py │ │ ├── for4.py │ │ ├── for5.py │ │ ├── for6.py │ │ ├── while1.py │ │ └── while2.py │ └── 循环结构.md ├── Day05 │ ├── code │ │ ├── chicken.py │ │ ├── craps.py │ │ ├── fibonacci.py │ │ ├── guess.py │ │ ├── lily.py │ │ ├── palindrome.py │ │ ├── perfect.py │ │ ├── prime.py │ │ └── table.py │ └── 总结和练习.md ├── Day06 │ ├── code │ │ ├── function1.py │ │ ├── function2.py │ │ ├── function3.py │ │ ├── function4.py │ │ ├── function5.py │ │ └── function6.py │ └── 函数和模块的使用.md ├── Day07 │ ├── code │ │ ├── avgscore.py │ │ ├── dict1.py │ │ ├── dict2.py │ │ ├── fibonacci.py │ │ ├── findmax.py │ │ ├── list1.py │ │ ├── list2.py │ │ ├── list3.py │ │ ├── lottery.py │ │ ├── marquee.py │ │ ├── scoretable.py │ │ ├── set1.py │ │ ├── set2.py │ │ ├── tic-tac-toe.py │ │ ├── tuple.py │ │ └── yanghui.py │ ├── res │ │ ├── fibonacci-blocks.png │ │ ├── ipython-timeit.png │ │ └── python-set.png │ └── 字符串和常用数据结构.md ├── Day08 │ ├── code │ │ ├── access.py │ │ ├── circle.py │ │ ├── clock.py │ │ ├── guess.py │ │ ├── hack.py │ │ ├── rect.py │ │ └── student.py │ ├── res │ │ ├── object-feature.png │ │ └── oop-zhihu.png │ └── 面向对象编程基础.md ├── Day09 │ ├── code │ │ ├── association.py │ │ ├── car1.py │ │ ├── car2.py │ │ ├── clock.py │ │ ├── dependency.py │ │ ├── diamond.py │ │ ├── employee.py │ │ ├── multi.py │ │ ├── pet.py │ │ ├── rational.py │ │ ├── shape.py │ │ └── triangle.py │ ├── res │ │ ├── uml-components.png │ │ ├── uml-example.gliffy │ │ └── uml-example.png │ └── 面向对象进阶.md ├── Day10 │ ├── code │ │ ├── ball.py │ │ ├── gui1.py │ │ ├── gui2.py │ │ ├── gui3.py │ │ ├── renju.py │ │ ├── snake.py │ │ └── turtle1.py │ ├── res │ │ ├── ball-game.png │ │ └── ball.png │ └── 图形用户界面和游戏开发.md ├── Day11 │ ├── code │ │ ├── csv1.py │ │ ├── csv2.py │ │ ├── ex1.py │ │ ├── ex2.py │ │ ├── ex3.py │ │ ├── ex4.py │ │ ├── example.csv │ │ ├── file1.py │ │ ├── file2.py │ │ ├── file3.py │ │ ├── file4.py │ │ ├── json1.py │ │ ├── json2.py │ │ ├── mm.jpg │ │ ├── pi_million_digits.txt │ │ ├── teacher.csv │ │ └── 致橡树.txt │ ├── res │ │ └── file-open-mode.png │ └── 文件和异常.md ├── Day12 │ ├── code │ │ ├── str1.py │ │ ├── str2.py │ │ ├── test3.py │ │ ├── test4.py │ │ └── test5.py │ ├── res │ │ └── tel-start-number.png │ └── 字符串和正则表达式.md ├── Day13 │ ├── code │ │ ├── asyncio1.py │ │ ├── asyncio2.py │ │ ├── asyncio3.py │ │ ├── coroutine1.py │ │ ├── coroutine2.py │ │ ├── generator1.py │ │ ├── generator2.py │ │ ├── multiprocess1.py │ │ ├── multiprocess2.py │ │ ├── multiprocess3.py │ │ ├── multiprocess4.py │ │ ├── multithread1.py │ │ ├── multithread2.py │ │ ├── multithread3.py │ │ ├── multithread4.py │ │ ├── multithread5.py │ │ ├── multithread6.py │ │ ├── singlethread1.py │ │ ├── singlethread2.py │ │ ├── test2.py │ │ └── test3.py │ ├── res │ │ └── macos-monitor.png │ └── 进程和线程.md ├── Day14-A │ ├── code │ │ ├── chatclient.py │ │ ├── chatserver.py │ │ ├── fileclient.py │ │ ├── fileserver.py │ │ ├── guido.jpg │ │ ├── mmdownloader.py │ │ ├── socket1.py │ │ ├── socket2.py │ │ ├── socket3.py │ │ ├── socket4.py │ │ ├── socket5.py │ │ ├── timeclient.py │ │ └── timeserver.py │ ├── res │ │ ├── TCP-IP-model.png │ │ ├── after-browser.jpg │ │ ├── arpanet.png │ │ ├── before-browser.jpg │ │ ├── browers.jpg │ │ ├── browser-market-place.jpeg │ │ ├── how-data-is-processed.jpg │ │ ├── osi_rm.gif │ │ ├── osimodel.png │ │ ├── tcpipprotocols.png │ │ └── telnet.png │ └── 网络编程入门.md ├── Day14-B │ └── 网络应用开发.md └── Day15 │ ├── code │ ├── excel1.py │ ├── excel2.py │ ├── pdf1.py │ ├── pdf2.py │ ├── pillow1.py │ ├── res │ │ ├── Python课程大纲.pdf │ │ ├── guido.jpg │ │ ├── 学生明细表.xlsx │ │ └── 用函数还是用复杂的表达式.docx │ ├── word1.py │ └── word2.py │ └── 图像和办公文档处理.md ├── Day16-20 ├── Python语言进阶.md ├── code │ ├── example01.py │ ├── example02.py │ ├── example03.py │ ├── example04.py │ ├── example05.py │ ├── example06.py │ ├── example07.py │ ├── example08.py │ ├── example09.py │ ├── example10.py │ ├── example11.py │ ├── example12.py │ ├── example13.py │ ├── example14.py │ ├── example15.py │ ├── example16.py │ ├── example17.py │ ├── example18.py │ ├── example19.py │ ├── example20.py │ ├── example21.py │ ├── example22.py │ ├── example23.py │ ├── example24.py │ ├── homework01.py │ ├── homework02.py │ ├── test_example01.py │ └── test_example02.py └── res │ ├── algorithm_complexity_1.png │ └── algorithm_complexity_2.png ├── Day21-30 ├── Web前端概述.md ├── code │ ├── new │ │ ├── vue │ │ │ └── vue.demo.html │ │ └── web1901 │ │ │ ├── audio │ │ │ ├── test-audio.mp3 │ │ │ └── test-audio.ogg │ │ │ ├── css │ │ │ └── style.css │ │ │ ├── css_practice_1.html │ │ │ ├── css_practice_1.result.html │ │ │ ├── css_practice_2.html │ │ │ ├── css_practice_2.result.html │ │ │ ├── css_practice_3.html │ │ │ ├── css_practice_3.result.html │ │ │ ├── example_of_anchor.html │ │ │ ├── example_of_audio_video.html │ │ │ ├── example_of_bom_1.html │ │ │ ├── example_of_bootstrap.html │ │ │ ├── example_of_css_1.html │ │ │ ├── example_of_css_2.html │ │ │ ├── example_of_css_3.html │ │ │ ├── example_of_css_4.html │ │ │ ├── example_of_css_5.html │ │ │ ├── example_of_form.html │ │ │ ├── example_of_iframe.html │ │ │ ├── example_of_jquery_1.html │ │ │ ├── example_of_jquery_2.html │ │ │ ├── example_of_jquery_3.html │ │ │ ├── example_of_jquery_4.html │ │ │ ├── example_of_jquery_5.html │ │ │ ├── example_of_js_1.html │ │ │ ├── example_of_js_2.html │ │ │ ├── example_of_js_3.html │ │ │ ├── example_of_js_4.html │ │ │ ├── example_of_js_5.html │ │ │ ├── example_of_js_6.html │ │ │ ├── example_of_js_7.html │ │ │ ├── example_of_layout.html │ │ │ ├── example_of_table.html │ │ │ ├── example_of_vue_element.html │ │ │ ├── fonts │ │ │ ├── chunkfive.ttf │ │ │ └── quicksand.ttf │ │ │ ├── images │ │ │ ├── a1.jpg │ │ │ ├── a2.jpg │ │ │ ├── a3.jpg │ │ │ ├── add.gif │ │ │ ├── backdrop.gif │ │ │ ├── bird.gif │ │ │ ├── bok-choi.jpg │ │ │ ├── button-sprite.jpg │ │ │ ├── buttons.jpg │ │ │ ├── chocolate-islands.jpg │ │ │ ├── clavinet.jpg │ │ │ ├── dark-wood.jpg │ │ │ ├── dots.gif │ │ │ ├── email.png │ │ │ ├── header.gif │ │ │ ├── header.jpg │ │ │ ├── icon-plus.png │ │ │ ├── icon.png │ │ │ ├── icons.jpg │ │ │ ├── keys.jpg │ │ │ ├── lemon-posset.jpg │ │ │ ├── logo-1.gif │ │ │ ├── logo-2.gif │ │ │ ├── logo-3.gif │ │ │ ├── logo.gif │ │ │ ├── magnolia-large.jpg │ │ │ ├── magnolia-medium.jpg │ │ │ ├── magnolia-small.jpg │ │ │ ├── otters.jpg │ │ │ ├── pattern.gif │ │ │ ├── picture-1.jpg │ │ │ ├── picture-2.jpg │ │ │ ├── picture-3.jpg │ │ │ ├── print-01.jpg │ │ │ ├── print-02.jpg │ │ │ ├── print-03.jpg │ │ │ ├── print-04.jpg │ │ │ ├── print-05.jpg │ │ │ ├── print-06.jpg │ │ │ ├── puppy.jpg │ │ │ ├── python-logo.png │ │ │ ├── quokka.jpg │ │ │ ├── rhodes.jpg │ │ │ ├── roasted-brussel-sprouts.jpg │ │ │ ├── shadow.png │ │ │ ├── slide-1.jpg │ │ │ ├── slide-2.jpg │ │ │ ├── slide-3.jpg │ │ │ ├── slide-4.jpg │ │ │ ├── star.png │ │ │ ├── subscribe.jpg │ │ │ ├── teriyaki.jpg │ │ │ ├── thumb-1.jpg │ │ │ ├── thumb-2.jpg │ │ │ ├── thumb-3.jpg │ │ │ ├── tim.png │ │ │ ├── title.gif │ │ │ ├── tulip.gif │ │ │ ├── twitter.png │ │ │ ├── web.png │ │ │ ├── wurlitzer.jpg │ │ │ └── zucchini-cake.jpg │ │ │ ├── index.html │ │ │ ├── js │ │ │ ├── hello.js │ │ │ └── jquery.min.js │ │ │ ├── js_practice_1.html │ │ │ ├── js_practice_2.html │ │ │ ├── js_practice_3.html │ │ │ ├── js_practice_4.html │ │ │ ├── js_practice_5.html │ │ │ ├── js_practice_6.html │ │ │ ├── js_practice_7.html │ │ │ ├── problem_of_float.html │ │ │ ├── shopping_cart.html │ │ │ └── video │ │ │ ├── puppy.flv │ │ │ ├── puppy.mp4 │ │ │ └── puppy.webm │ └── old │ │ ├── html+css │ │ ├── classical_layout.html │ │ ├── example.html │ │ ├── form_and_table.html │ │ └── qq_link.html │ │ └── javascript │ │ ├── example01.html │ │ ├── example02.html │ │ ├── example03.html │ │ ├── example04.html │ │ ├── example05.html │ │ ├── example06.html │ │ ├── example07.html │ │ ├── example08.html │ │ ├── example09.html │ │ ├── example10.html │ │ ├── example11.html │ │ ├── example12.html │ │ ├── homework01.html │ │ ├── homework02.html │ │ ├── homework03.html │ │ ├── homework04.html │ │ ├── homework05.html │ │ ├── homework06.html │ │ ├── homework07.html │ │ ├── homework08.html │ │ ├── img │ │ ├── a1.jpg │ │ ├── a2.jpg │ │ ├── a3.jpg │ │ ├── picture-1.jpg │ │ ├── picture-2.jpg │ │ ├── picture-3.jpg │ │ ├── slide-1.jpg │ │ ├── slide-2.jpg │ │ ├── slide-3.jpg │ │ ├── slide-4.jpg │ │ ├── thumb-1.jpg │ │ ├── thumb-2.jpg │ │ └── thumb-3.jpg │ │ ├── index.html │ │ ├── js │ │ ├── jquery.min.js │ │ └── mylib.js │ │ ├── message.json │ │ └── message.xml ├── docs │ ├── Bulma- Free, open source, & modern CSS framework based on Flexbox.pdf │ ├── Why Vue.mp4 │ └── Why you should use Bulma.mp4 └── res │ ├── baidu_echarts.png │ ├── bootstrap-layoutit.png │ ├── browser-joke-1.png │ ├── browser-joke-2.png │ ├── browser-joke-3.png │ ├── dom-page.png │ ├── dom-tree.png │ ├── 字体样式.png │ ├── 字符实体.png │ ├── 客户端对字体文件的支持.png │ ├── 尺寸单位.png │ ├── 属性选择器.png │ ├── 常用选择器.png │ ├── 开始标签.png │ ├── 标签属性.png │ ├── 样式属性.png │ ├── 盒子模型.png │ ├── 相对路径.png │ ├── 经典布局-1.png │ ├── 经典布局-2.png │ ├── 结束标签.png │ ├── 网站地图.png │ ├── 衬线字体+非衬线字体+等宽字体.png │ └── 选择器语法.png ├── Day31-35 ├── code │ ├── dayofyear.py │ ├── guess.py │ ├── homework01.py │ ├── josephu.py │ └── mycal.py ├── res │ ├── Ken-Thompson.png │ ├── andrew-tanenbaum.png │ ├── dennis-ritchie.png │ ├── file-mode.png │ ├── history-of-os.png │ ├── history-of-unix.png │ ├── ibm-col80-punched-card.png │ ├── ken-and-dennis-pdp-11.png │ ├── linus-torvalds.png │ ├── linux-network-config.png │ ├── pdp-7.png │ ├── vim-diff.png │ ├── vim-macro.png │ └── vim-multi-window.png └── 玩转Linux操作系统.md ├── Day36-40 ├── NoSQL入门.md ├── code │ ├── HRS_create_and_init.sql │ ├── SRS_create_and_init.sql │ ├── bank_create_and_init.sql │ ├── booksys_create_and_init.sql │ ├── contact │ │ └── main.py │ ├── demo_create_and_init.sql │ ├── dist.sql │ ├── library_create_and_init.sql │ ├── mooc_create_and_init.sql │ ├── sharebike_create_and_init.sql │ ├── shop_create_sql.sql │ ├── srs_exercise_origin.sql │ ├── 人力资源管理.spf │ └── 学校选课系统.spf ├── res │ ├── redis-aof.png │ ├── redis-bind-and-port.png │ ├── redis-data-types.png │ ├── redis-databases.png │ ├── redis-hash.png │ ├── redis-list.png │ ├── redis-rdb-1.png │ ├── redis-rdb-3.png │ ├── redis-replication.png │ ├── redis-security.png │ ├── redis-set.png │ ├── redis-slow-logs.png │ ├── redis-string.png │ └── redis-zset.png └── 关系型数据库MySQL.md ├── Day41-55 ├── 01.快速上手.md ├── 02.深入模型.md ├── 03.静态资源和Ajax请求.md ├── 04.表单的应用.md ├── 05.Cookie和会话.md ├── 06.中间件的应用.md ├── 07.日志和调试.md ├── 08.文件上传和富文本编辑.md ├── 09.文件下载和报表.md ├── 10.RESTful架构和DRF入门.md ├── 11.RESTful架构和DRF进阶.md ├── 12.使用缓存.md ├── 13.短信和邮件.md ├── 14.异步任务和定时任务.md ├── 15.单元测试和项目上线.md ├── code │ ├── car │ │ ├── car │ │ │ ├── __init__.py │ │ │ ├── settings.py │ │ │ ├── urls.py │ │ │ └── wsgi.py │ │ ├── manage.py │ │ ├── search │ │ │ ├── __init__.py │ │ │ ├── admin.py │ │ │ ├── apps.py │ │ │ ├── migrations │ │ │ │ ├── 0001_initial.py │ │ │ │ ├── 0002_auto_20180524_1420.py │ │ │ │ └── __init__.py │ │ │ ├── models.py │ │ │ ├── tests.py │ │ │ └── views.py │ │ ├── static │ │ │ └── images │ │ │ │ ├── icon-no.svg │ │ │ │ └── icon-yes.svg │ │ └── templates │ │ │ ├── add.html │ │ │ ├── search.html │ │ │ └── search2.html │ ├── hellodjango │ │ ├── demo │ │ │ ├── __init__.py │ │ │ ├── admin.py │ │ │ ├── apps.py │ │ │ ├── forms.py │ │ │ ├── hello.py │ │ │ ├── migrations │ │ │ │ ├── 0001_initial.py │ │ │ │ ├── 0002_auto_20180704_1117.py │ │ │ │ ├── 0003_auto_20180704_1118.py │ │ │ │ ├── 0004_auto_20180705_1017.py │ │ │ │ ├── 0005_auto_20180706_1458.py │ │ │ │ └── __init__.py │ │ │ ├── models.py │ │ │ ├── tests.py │ │ │ └── views.py │ │ ├── hellodjango │ │ │ ├── __init__.py │ │ │ ├── settings.py │ │ │ ├── urls.py │ │ │ └── wsgi.py │ │ ├── manage.py │ │ ├── static │ │ │ ├── images │ │ │ │ ├── andrew.png │ │ │ │ ├── dennis.png │ │ │ │ ├── icon-no.svg │ │ │ │ ├── icon-yes.svg │ │ │ │ ├── ken.png │ │ │ │ └── linus.png │ │ │ └── js │ │ │ │ └── jquery.min.js │ │ └── templates │ │ │ └── demo │ │ │ ├── login.html │ │ │ ├── register.html │ │ │ ├── subject.html │ │ │ └── teacher.html │ ├── oa │ │ ├── hrs │ │ │ ├── __init__.py │ │ │ ├── admin.py │ │ │ ├── apps.py │ │ │ ├── index.html │ │ │ ├── migrations │ │ │ │ ├── 0001_initial.py │ │ │ │ ├── 0002_auto_20180523_0923.py │ │ │ │ ├── 0003_auto_20180524_1646.py │ │ │ │ ├── 0004_auto_20180815_1345.py │ │ │ │ └── __init__.py │ │ │ ├── models.py │ │ │ ├── tests.py │ │ │ ├── urls.py │ │ │ └── views.py │ │ ├── manage.py │ │ ├── oa │ │ │ ├── __init__.py │ │ │ ├── settings.py │ │ │ ├── urls.py │ │ │ └── wsgi.py │ │ ├── requirements.txt │ │ ├── static │ │ │ ├── css │ │ │ │ └── bootstrap.min.css │ │ │ ├── images │ │ │ │ └── mm.jpg │ │ │ └── js │ │ │ │ ├── bootstrap.min.js │ │ │ │ └── jquery.min.js │ │ └── templates │ │ │ ├── dept.html │ │ │ ├── emp.html │ │ │ └── index.html │ ├── shop │ │ ├── cart │ │ │ ├── __init__.py │ │ │ ├── admin.py │ │ │ ├── apps.py │ │ │ ├── migrations │ │ │ │ ├── 0001_initial.py │ │ │ │ └── __init__.py │ │ │ ├── models.py │ │ │ ├── tests.py │ │ │ └── views.py │ │ ├── manage.py │ │ ├── shop │ │ │ ├── __init__.py │ │ │ ├── settings.py │ │ │ ├── urls.py │ │ │ └── wsgi.py │ │ ├── static │ │ │ └── images │ │ │ │ ├── dolbee.jpg │ │ │ │ ├── lay.jpg │ │ │ │ ├── noodle.jpg │ │ │ │ ├── oil.jpg │ │ │ │ ├── wang.jpg │ │ │ │ └── wine.jpg │ │ └── templates │ │ │ ├── cart.html │ │ │ └── goods.html │ └── shop_origin │ │ ├── cart │ │ ├── __init__.py │ │ ├── admin.py │ │ ├── apps.py │ │ ├── migrations │ │ │ ├── 0001_initial.py │ │ │ └── __init__.py │ │ ├── models.py │ │ ├── tests.py │ │ └── views.py │ │ ├── manage.py │ │ ├── shop │ │ ├── __init__.py │ │ ├── settings.py │ │ ├── urls.py │ │ └── wsgi.py │ │ ├── shop_create_sql.sql │ │ ├── static │ │ └── images │ │ │ ├── dolbee.jpg │ │ │ ├── lay.jpg │ │ │ ├── noodle.jpg │ │ │ ├── oil.jpg │ │ │ ├── wang.jpg │ │ │ └── wine.jpg │ │ └── templates │ │ ├── cart.html │ │ └── goods.html └── res │ ├── Django-Flowchart.png │ ├── Django-MTV.png │ ├── admin-login.png │ ├── admin-model-create.png │ ├── admin-model-delete-and-update.png │ ├── admin-model-depts.png │ ├── admin-model-emps-modified.png │ ├── admin-model-emps.png │ ├── admin-model-read.png │ ├── admin-model.png │ ├── admin-welcome.png │ ├── django-index-1.png │ ├── django-index-2.png │ ├── er-graph.png │ ├── http-request.png │ ├── http-response.png │ ├── mvc.png │ ├── runserver01.png │ ├── runserver02.png │ ├── runserver03.png │ ├── show-subjects.png │ ├── show-teachers.png │ └── web-application.png ├── Day56-60 ├── 01.Flask入门.md ├── 02.模板的使用.md ├── 03.表单的处理.md ├── 04.数据库操作.md └── 05.项目实战.md ├── Day61-65 ├── .gitkeep ├── 01.预备知识.md ├── 02.Tornado入门.md ├── 03.异步化.md ├── 04.WebSocket的应用.md ├── 05.项目实战.md ├── code │ ├── .gitkeep │ ├── hello-tornado │ │ ├── chat_handlers.py │ │ ├── chat_server.py │ │ ├── example01.py │ │ ├── example02.py │ │ ├── example03.py │ │ ├── example04.py │ │ ├── example05.py │ │ ├── example06.py │ │ ├── example07.py │ │ ├── example_of_aiohttp.py │ │ ├── example_of_asyncio.py │ │ ├── example_of_coroutine.py │ │ ├── example_of_multiprocess.py │ │ ├── requirements.txt │ │ └── templates │ │ │ ├── chat.html │ │ │ ├── login.html │ │ │ └── news.html │ └── project_of_tornado │ │ ├── assets │ │ ├── css │ │ │ ├── admin.css │ │ │ ├── amazeui.datatables.min.css │ │ │ ├── amazeui.min.css │ │ │ ├── app.css │ │ │ ├── app.less │ │ │ ├── fullcalendar.min.css │ │ │ └── fullcalendar.print.css │ │ ├── fonts │ │ │ ├── FontAwesome.otf │ │ │ ├── fontawesome-webfont.eot │ │ │ ├── fontawesome-webfont.ttf │ │ │ ├── fontawesome-webfont.woff │ │ │ └── fontawesome-webfont.woff2 │ │ ├── html │ │ │ ├── 404.html │ │ │ ├── calendar.html │ │ │ ├── chart.html │ │ │ ├── form.html │ │ │ ├── login.html │ │ │ ├── sign-up.html │ │ │ ├── table-list-img.html │ │ │ ├── table-list.html │ │ │ └── tables.html │ │ ├── i │ │ │ ├── app-icon72x72@2x.png │ │ │ ├── examples │ │ │ │ ├── admin-chrome.png │ │ │ │ ├── admin-firefox.png │ │ │ │ ├── admin-ie.png │ │ │ │ ├── admin-opera.png │ │ │ │ ├── admin-safari.png │ │ │ │ ├── adminPage.png │ │ │ │ ├── blogPage.png │ │ │ │ ├── landing.png │ │ │ │ ├── landingPage.png │ │ │ │ ├── loginPage.png │ │ │ │ └── sidebarPage.png │ │ │ ├── favicon.png │ │ │ └── startup-640x1096.png │ │ ├── img │ │ │ ├── a5.png │ │ │ ├── k.jpg │ │ │ ├── logo.png │ │ │ ├── logoa.png │ │ │ ├── logob.png │ │ │ ├── user01.png │ │ │ ├── user02.png │ │ │ ├── user03.png │ │ │ ├── user04.png │ │ │ ├── user05.png │ │ │ ├── user06.png │ │ │ └── user07.png │ │ └── js │ │ │ ├── amazeui.datatables.min.js │ │ │ ├── amazeui.min.js │ │ │ ├── app.js │ │ │ ├── dataTables.responsive.min.js │ │ │ ├── echarts.min.js │ │ │ ├── fullcalendar.min.js │ │ │ ├── jquery.min.js │ │ │ ├── moment.js │ │ │ └── theme.js │ │ ├── backend_server.py │ │ ├── requirements.txt │ │ ├── service │ │ ├── __init__.py │ │ └── handlers │ │ │ ├── __init__.py │ │ │ ├── handlers_for_charts.py │ │ │ ├── handlers_for_nav.py │ │ │ └── handlers_for_tables.py │ │ └── templates │ │ └── index.html └── res │ ├── .gitkeep │ ├── run-hello-world-app.png │ ├── websocket.png │ └── ws_wss.png ├── Day66-75 ├── 01.网络爬虫和相关工具.md ├── 02.数据采集和解析.md ├── 03.存储数据.md ├── 04.并发下载.md ├── 05.解析动态内容.md ├── 06.表单交互和验证码处理.md ├── 07.Scrapy入门.md ├── 08.Scrapy高级应用.md ├── 09.Scrapy分布式实现.md ├── 10.爬虫项目实战.md ├── code │ ├── asyncio01.py │ ├── asyncio02.py │ ├── coroutine01.py │ ├── coroutine02.py │ ├── douban │ │ ├── douban │ │ │ ├── __init__.py │ │ │ ├── items.py │ │ │ ├── middlewares.py │ │ │ ├── pipelines.py │ │ │ ├── settings.py │ │ │ └── spiders │ │ │ │ ├── __init__.py │ │ │ │ └── movie.py │ │ ├── result.json │ │ └── scrapy.cfg │ ├── example01.py │ ├── example02.py │ ├── example03.py │ ├── example04.py │ ├── example05.py │ ├── example06.py │ ├── example07.py │ ├── example08.py │ ├── example09.py │ ├── example10.py │ ├── example10a.py │ ├── example11.py │ ├── example11a.py │ ├── example12.py │ ├── generator01.py │ ├── generator02.py │ ├── guido.jpg │ ├── image360 │ │ ├── image360 │ │ │ ├── __init__.py │ │ │ ├── items.py │ │ │ ├── middlewares.py │ │ │ ├── pipelines.py │ │ │ ├── settings.py │ │ │ └── spiders │ │ │ │ ├── __init__.py │ │ │ │ ├── image.py │ │ │ │ └── taobao.py │ │ └── scrapy.cfg │ ├── main.py │ ├── main_redis.py │ ├── myutils.py │ └── tesseract.png ├── res │ ├── api-image360.png │ ├── baidu-search-taobao.png │ ├── chrome-developer-tools.png │ ├── crawler-workflow.png │ ├── douban-xpath.png │ ├── http-request.png │ ├── http-response.png │ ├── image360-website.png │ ├── postman.png │ ├── redis-save.png │ ├── scrapy-architecture.png │ └── tesseract.gif └── 常见反爬策略及应对方案.md ├── Day76-90 ├── 01.机器学习基础.md ├── 02.Pandas的应用.md ├── 03.NumPy和SciPy的应用.md ├── 04.Matplotlib和数据可视化.md ├── 05.k最近邻分类.md ├── 06.决策树.md ├── 07.贝叶斯分类.md ├── 08.支持向量机.md ├── 09.K-均值聚类.md ├── 10.回归分析.md ├── 11.大数据分析入门.md ├── 12.大数据分析进阶.md ├── 13.Tensorflow入门.md ├── 14.Tensorflow实战.md ├── 15.推荐系统实战.md └── res │ ├── 201205230001213115.png │ ├── 201205230001238839.png │ ├── 20120523000125800.png │ ├── result-in-jupyter.png │ ├── result1.png │ ├── result2.png │ ├── result3.png │ ├── result4.png │ ├── result5.png │ ├── result6.png │ ├── result7.png │ ├── result8.png │ └── result9.png ├── Day91-100 ├── Django知识点概述.md ├── Docker简易上手指南.md ├── MySQL相关知识.md ├── res │ ├── 01.django_single_server.png │ ├── 02.django_dedicated_db_server.png │ ├── 03.django_dedicated_static_server.png │ ├── 04.django_load_balance.png │ ├── 05.django_massive_cluster.png │ ├── Celery_RabitMQ.png │ ├── Producer-Broker-Consumer-Arrangement.png │ ├── algorithm_complexity_1.png │ ├── algorithm_complexity_2.png │ ├── alipay_web_developer.png │ ├── aliyun-certificate.png │ ├── aliyun-dnslist.png │ ├── aliyun-domain.png │ ├── aliyun-keeprecord.png │ ├── aliyun-resolve-settings.png │ ├── builtin-middlewares.png │ ├── celery_architecture.png │ ├── click-jacking.png │ ├── company_architecture.png │ ├── django-middleware.png │ ├── django-mtv.png │ ├── django_request_response_cycle.png │ ├── docker_logo.png │ ├── docker_vs_vm.png │ ├── er-graph.png │ ├── git_logo.png │ ├── git_repository.png │ ├── hadoop_ecosystem.png │ ├── http-request.png │ ├── http-response.png │ ├── jenkins_new_project.png │ ├── mvc.png │ ├── oauth2.png │ ├── power-designer-pdm.png │ ├── pylint.png │ ├── python_jobs_chengdu.png │ ├── python_salary_chengdu.png │ ├── rbac-basic.png │ ├── rbac-full.png │ ├── redmine_new_issue.png │ ├── requirements_by_xmind.png │ ├── selenium_ide.png │ ├── shopping-pdm.png │ ├── the-daily-scrum-in-the-sprint-cycle.png │ ├── uml-class-diagram.png │ ├── uml-graph.png │ ├── uml.png │ └── web-application.png ├── 关于测试.md ├── 团队项目开发.md ├── 电商网站技术要点剖析.md ├── 网络API接口设计.md ├── 英语面试.md ├── 面试中的公共问题.md └── 项目部署上线指南.md ├── PEP 8风格指南.md ├── Python参考书籍.md ├── Python惯例.md ├── README.md ├── res ├── 01.django_single_server.png ├── 02.django_dedicated_db_server.png ├── 03.django_dedicated_static_server.png ├── 04.django_load_balance.png ├── 05.django_massive_cluster.png ├── Celery_RabitMQ.png ├── Producer-Broker-Consumer-Arrangement.png ├── abstraction-view.png ├── algorithm_complexity_1.png ├── algorithm_complexity_2.png ├── alipay_web_developer.png ├── aliyun-certificate.png ├── aliyun-dnslist.png ├── aliyun-domain.png ├── aliyun-keeprecord.png ├── aliyun-resolve-settings.png ├── app_folder_arch.png ├── builtin-middlewares.png ├── celery.png ├── celery_architecture.png ├── class-and-object.png ├── click-jacking.png ├── company_architecture.png ├── concurrency.png ├── deployment_pipelines.png ├── django-middleware.png ├── django-mtv.png ├── django_request_response_cycle.png ├── docker_logo.png ├── docker_vs_vm.png ├── encapsulation.png ├── er-graph.png ├── git_logo.png ├── git_repository.png ├── gitignore_io.png ├── greedy.png ├── hadoop_ecosystem.png ├── http-request.png ├── http-response.png ├── int-is-comparation.png ├── jenkins_new_project.png ├── modularity.png ├── multi-inheritance.png ├── mvc.png ├── oauth2.png ├── object-roles.png ├── objects-collaborate.png ├── objects-lifetime.png ├── power-designer-pdm.png ├── pycharm-activate.png ├── pycharm-comm-django-1.png ├── pycharm-comm-django-2.png ├── pycharm-comm-django-3.png ├── pycharm-comm-django-4.png ├── pycharm-comm-django-5.png ├── pycharm-comm-django-6.png ├── pycharm-comm-django-7.png ├── pycharm-comm-django-8.png ├── pycharm-create-launcher-script.png ├── pycharm-import-settings.png ├── pycharm-new-project.png ├── pycharm-plugins.png ├── pycharm-prof-django-2.png ├── pycharm-prof-django-3.png ├── pycharm-set-ui-theme.png ├── pycharm-welcome.png ├── pycharm-workspace.png ├── pylint.png ├── python-bj-salary.png ├── python-built-in-functions.png ├── python-cd-salary.png ├── python-job-all.png ├── python-job-chengdu.png ├── python-salary-beijing.png ├── python-salary-chengdu.png ├── python-salary-hangzhou.png ├── python-salary-shanghai.png ├── python-salary-shenzhen.png ├── python-salary.png ├── python-str-join.png ├── python-top-10.png ├── python-tutor-visualize.png ├── python-tutor-visualize2.png ├── python_jobs_chengdu.png ├── python_salary_chengdu.png ├── python_salary_guangzhou.png ├── rbac-basic.png ├── rbac-full.png ├── redmine_new_issue.png ├── requirements_by_xmind.png ├── result-of-dis.png ├── selenium-ide.png ├── selenium_ide.png ├── shopping-pdm.png ├── the-daily-scrum-in-the-sprint-cycle.png ├── uml-class-diagram.png ├── uml-graph.png ├── uml.png ├── web-application.png ├── web-queue-worker-physical.png └── zen-of-python.png ├── 玩转PyCharm.md ├── 用函数还是用复杂的表达式.md ├── 知乎问题回答.md └── 那些年我们踩过的那些坑.md /.gitignore: -------------------------------------------------------------------------------- 1 | venv 2 | .idea 3 | *.pyc 4 | __pycache__ 5 | 6 | -------------------------------------------------------------------------------- /Day01-15/Day01/code/hello.py: -------------------------------------------------------------------------------- 1 | """ 2 | 第一个Python程序 - hello, world! 3 | 向伟大的Dennis M. Ritchie先生致敬 4 | 5 | Version: 0.1 6 | Author: 骆昊 7 | Date: 2018-02-26 8 | 9 | 请将该文件命名为hello.py并在终端中通过下面的命令运行它 10 | python hello.py 11 | """ 12 | 13 | print('hello, world!') 14 | # print("你好,世界!") 15 | print('你好', '世界') 16 | print('hello', 'world', sep=', ', end='!') 17 | print('goodbye, world', end='!\n') 18 | -------------------------------------------------------------------------------- /Day01-15/Day01/res/python-idle.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/Day01-15/Day01/res/python-idle.png -------------------------------------------------------------------------------- /Day01-15/Day01/res/python-ipython.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/Day01-15/Day01/res/python-ipython.png -------------------------------------------------------------------------------- /Day01-15/Day01/res/python-jupyter-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/Day01-15/Day01/res/python-jupyter-1.png -------------------------------------------------------------------------------- /Day01-15/Day01/res/python-jupyter-2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/Day01-15/Day01/res/python-jupyter-2.png -------------------------------------------------------------------------------- /Day01-15/Day01/res/python-pycharm.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/Day01-15/Day01/res/python-pycharm.png -------------------------------------------------------------------------------- /Day01-15/Day01/res/python-sublime.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/Day01-15/Day01/res/python-sublime.png -------------------------------------------------------------------------------- /Day01-15/Day02/code/centigrade.py: -------------------------------------------------------------------------------- 1 | """ 2 | 将华氏温度转换为摄氏温度 3 | F = 1.8C + 32 4 | 5 | Version: 0.1 6 | Author: 骆昊 7 | Date: 2018-02-27 8 | """ 9 | 10 | f = float(input('请输入华氏温度: ')) 11 | c = (f - 32) / 1.8 12 | print('%.1f华氏度 = %.1f摄氏度' % (f, c)) 13 | -------------------------------------------------------------------------------- /Day01-15/Day02/code/circle.py: -------------------------------------------------------------------------------- 1 | """ 2 | 输入半径计算圆的周长和面积 3 | 4 | Version: 0.1 5 | Author: 骆昊 6 | Date: 2018-02-27 7 | """ 8 | 9 | import math 10 | 11 | radius = float(input('请输入圆的半径: ')) 12 | perimeter = 2 * math.pi * radius 13 | area = math.pi * radius * radius 14 | print('周长: %.2f' % perimeter) 15 | print('面积: %.2f' % area) 16 | -------------------------------------------------------------------------------- /Day01-15/Day02/code/leap.py: -------------------------------------------------------------------------------- 1 | """ 2 | 输入年份 如果是闰年输出True 否则输出False 3 | 4 | Version: 0.1 5 | Author: 骆昊 6 | Date: 2018-02-27 7 | """ 8 | 9 | year = int(input('请输入年份: ')) 10 | # 如果代码太长写成一行不便于阅读 可以使用\或()折行 11 | is_leap = (year % 4 == 0 and year % 100 != 0 or 12 | year % 400 == 0) 13 | print(is_leap) 14 | -------------------------------------------------------------------------------- /Day01-15/Day02/code/operator.py: -------------------------------------------------------------------------------- 1 | """ 2 | 运算符的使用 3 | 4 | Version: 0.1 5 | Author: 骆昊 6 | Date: 2018-02-27 7 | """ 8 | 9 | a = 5 10 | b = 10 11 | c = 3 12 | d = 4 13 | e = 5 14 | a += b 15 | a -= c 16 | a *= d 17 | a /= e 18 | print("a = ", a) 19 | 20 | flag1 = 3 > 2 21 | flag2 = 2 < 1 22 | flag3 = flag1 and flag2 23 | flag4 = flag1 or flag2 24 | flag5 = not flag1 25 | print("flag1 = ", flag1) 26 | print("flag2 = ", flag2) 27 | print("flag3 = ", flag3) 28 | print("flag4 = ", flag4) 29 | print("flag5 = ", flag5) 30 | print(flag1 is True) 31 | print(flag2 is not False) 32 | -------------------------------------------------------------------------------- /Day01-15/Day02/code/string.py: -------------------------------------------------------------------------------- 1 | """ 2 | 字符串常用操作 3 | 4 | Version: 0.1 5 | Author: 骆昊 6 | Date: 2018-02-27 7 | """ 8 | 9 | str1 = 'hello, world!' 10 | print('字符串的长度是:', len(str1)) 11 | print('单词首字母大写: ', str1.title()) 12 | print('字符串变大写: ', str1.upper()) 13 | # str1 = str1.upper() 14 | print('字符串是不是大写: ', str1.isupper()) 15 | print('字符串是不是以hello开头: ', str1.startswith('hello')) 16 | print('字符串是不是以hello结尾: ', str1.endswith('hello')) 17 | print('字符串是不是以感叹号开头: ', str1.startswith('!')) 18 | print('字符串是不是一感叹号结尾: ', str1.endswith('!')) 19 | str2 = '- \u9a86\u660a' 20 | str3 = str1.title() + ' ' + str2.lower() 21 | print(str3) 22 | -------------------------------------------------------------------------------- /Day01-15/Day02/code/variable1.py: -------------------------------------------------------------------------------- 1 | """ 2 | 使用变量保存数据并进行操作 3 | 4 | Version: 0.1 5 | Author: 骆昊 6 | Date: 2018-02-27 7 | """ 8 | 9 | a = 321 10 | b = 123 11 | print(a + b) 12 | print(a - b) 13 | print(a * b) 14 | print(a / b) 15 | print(a // b) 16 | print(a % b) 17 | print(a ** b) 18 | -------------------------------------------------------------------------------- /Day01-15/Day02/code/variable2.py: -------------------------------------------------------------------------------- 1 | """ 2 | 将input函数输入的数据保存在变量中并进行操作 3 | 4 | Version: 0.1 5 | Author: 骆昊 6 | Date: 2018-02-27 7 | """ 8 | 9 | a = int(input('a = ')) 10 | b = int(input('b = ')) 11 | print(a + b) 12 | print(a - b) 13 | print(a * b) 14 | print(a / b) 15 | print(a // b) 16 | print(a % b) 17 | print(a ** b) 18 | -------------------------------------------------------------------------------- /Day01-15/Day02/code/variable3.py: -------------------------------------------------------------------------------- 1 | """ 2 | 格式化输出 3 | 4 | Version: 0.1 5 | Author: 骆昊 6 | Date: 2018-02-27 7 | """ 8 | 9 | a = int(input('a = ')) 10 | b = int(input('b = ')) 11 | print('%d + %d = %d' % (a, b, a + b)) 12 | print('%d - %d = %d' % (a, b, a - b)) 13 | print('%d * %d = %d' % (a, b, a * b)) 14 | print('%d / %d = %f' % (a, b, a / b)) 15 | print('%d // %d = %d' % (a, b, a // b)) 16 | print('%d %% %d = %d' % (a, b, a % b)) 17 | print('%d ** %d = %d' % (a, b, a ** b)) 18 | -------------------------------------------------------------------------------- /Day01-15/Day02/code/variable4.py: -------------------------------------------------------------------------------- 1 | """ 2 | 检查变量的类型 3 | 4 | Version: 0.1 5 | Author: 骆昊 6 | Date: 2018-02-27 7 | """ 8 | 9 | a = 100 10 | b = 1000000000000000000 11 | c = 12.345 12 | d = 1 + 5j 13 | e = 'A' 14 | f = 'hello, world' 15 | g = True 16 | print(type(a)) 17 | print(type(b)) 18 | print(type(c)) 19 | print(type(d)) 20 | print(type(e)) 21 | print(type(f)) 22 | print(type(g)) 23 | -------------------------------------------------------------------------------- /Day01-15/Day03/code/convert.py: -------------------------------------------------------------------------------- 1 | """ 2 | 英制单位英寸和公制单位厘米互换 3 | 4 | Version: 0.1 5 | Author: 骆昊 6 | Date: 2018-02-28 7 | """ 8 | 9 | value = float(input('请输入长度: ')) 10 | unit = input('请输入单位: ') 11 | if unit == 'in' or unit == '英寸': 12 | print('%f英寸 = %f厘米' % (value, value * 2.54)) 13 | elif unit == 'cm' or unit == '厘米': 14 | print('%f厘米 = %f英寸' % (value, value / 2.54)) 15 | else: 16 | print('请输入有效的单位') 17 | -------------------------------------------------------------------------------- /Day01-15/Day03/code/grade.py: -------------------------------------------------------------------------------- 1 | """ 2 | 百分制成绩转等级制成绩 3 | 90分以上 --> A 4 | 80分~89分 --> B 5 | 70分~79分 --> C 6 | 60分~69分 --> D 7 | 60分以下 --> E 8 | 9 | Version: 0.1 10 | Author: 骆昊 11 | Date: 2018-02-28 12 | """ 13 | 14 | score = float(input('请输入成绩: ')) 15 | if score >= 90: 16 | grade = 'A' 17 | elif score >= 80: 18 | grade = 'B' 19 | elif score >= 70: 20 | grade = 'C' 21 | elif score >= 60: 22 | grade = 'D' 23 | else: 24 | grade = 'E' 25 | print('对应的等级是:', grade) 26 | -------------------------------------------------------------------------------- /Day01-15/Day03/code/piecewise.py: -------------------------------------------------------------------------------- 1 | """ 2 | 分段函数求值 3 | 3x - 5 (x > 1) 4 | f(x) = x + 2 (-1 <= x <= 1) 5 | 5x + 3 (x < -1) 6 | 7 | Version: 0.1 8 | Author: 骆昊 9 | Date: 2018-02-28 10 | """ 11 | 12 | x = float(input('x = ')) 13 | if x > 1: 14 | y = 3 * x - 5 15 | elif x >= -1: 16 | y = x + 2 17 | else: 18 | y = 5 * x + 3 19 | print('f(%.2f) = %.2f' % (x, y)) 20 | -------------------------------------------------------------------------------- /Day01-15/Day03/code/rolldice.py: -------------------------------------------------------------------------------- 1 | """ 2 | 掷骰子决定做什么事情 3 | 4 | Version: 0.1 5 | Author: 骆昊 6 | Date: 2018-02-28 7 | """ 8 | 9 | from random import randint 10 | 11 | face = randint(1, 6) 12 | if face == 1: 13 | result = '唱首歌' 14 | elif face == 2: 15 | result = '跳个舞' 16 | elif face == 3: 17 | result = '学狗叫' 18 | elif face == 4: 19 | result = '做俯卧撑' 20 | elif face == 5: 21 | result = '念绕口令' 22 | else: 23 | result = '讲冷笑话' 24 | print(result) 25 | -------------------------------------------------------------------------------- /Day01-15/Day03/code/triangle.py: -------------------------------------------------------------------------------- 1 | """ 2 | 判断输入的边长能否构成三角形 3 | 如果能则计算出三角形的周长和面积 4 | 5 | Version: 0.1 6 | Author: 骆昊 7 | Date: 2018-02-28 8 | """ 9 | 10 | import math 11 | 12 | a = float(input('a = ')) 13 | b = float(input('b = ')) 14 | c = float(input('c = ')) 15 | if a + b > c and a + c > b and b + c > a: 16 | print('周长: %f' % (a + b + c)) 17 | p = (a + b + c) / 2 18 | area = math.sqrt(p * (p - a) * (p - b) * (p - c)) 19 | print('面积: %f' % (area)) 20 | else: 21 | print('不能构成三角形') 22 | -------------------------------------------------------------------------------- /Day01-15/Day03/code/verify.py: -------------------------------------------------------------------------------- 1 | """ 2 | 用户身份验证 3 | 4 | Version: 0.1 5 | Author: 骆昊 6 | Date: 2018-02-28 7 | """ 8 | 9 | # import getpass 10 | # from getpass import getpass 11 | # from getpass import * 12 | 13 | username = input('请输入用户名: ') 14 | password = input('请输入口令: ') 15 | # 输入口令的时候终端中没有回显 16 | # password = getpass.getpass('请输入口令: ') 17 | if username == 'admin' and password == '123456': 18 | print('身份验证成功!') 19 | else: 20 | print('身份验证失败!') 21 | -------------------------------------------------------------------------------- /Day01-15/Day04/code/for1.py: -------------------------------------------------------------------------------- 1 | """ 2 | 用for循环实现1~100求和 3 | 4 | Version: 0.1 5 | Author: 骆昊 6 | Date: 2018-03-01 7 | """ 8 | 9 | sum = 0 10 | for x in range(1, 101): 11 | if x % 2 == 0: 12 | sum += x 13 | print(sum) 14 | -------------------------------------------------------------------------------- /Day01-15/Day04/code/for2.py: -------------------------------------------------------------------------------- 1 | """ 2 | 用for循环实现1~100之间的偶数求和 3 | 4 | Version: 0.1 5 | Author: 骆昊 6 | Date: 2018-03-01 7 | """ 8 | 9 | sum = 0 10 | for x in range(2, 101, 2): 11 | sum += x 12 | print(sum) 13 | -------------------------------------------------------------------------------- /Day01-15/Day04/code/for3.py: -------------------------------------------------------------------------------- 1 | """ 2 | 输入非负整数n计算n! 3 | 4 | Version: 0.1 5 | Author: 骆昊 6 | Date: 2018-03-01 7 | """ 8 | 9 | n = int(input('n = ')) 10 | result = 1 11 | for x in range(1, n + 1): 12 | result *= x 13 | print('%d! = %d' % (n, result)) 14 | -------------------------------------------------------------------------------- /Day01-15/Day04/code/for4.py: -------------------------------------------------------------------------------- 1 | """ 2 | 输入一个正整数判断它是不是素数 3 | 4 | Version: 0.1 5 | Author: 骆昊 6 | Date: 2018-03-01 7 | """ 8 | 9 | from math import sqrt 10 | 11 | num = int(input('请输入一个正整数: ')) 12 | end = int(sqrt(num)) 13 | is_prime = True 14 | for x in range(2, end + 1): 15 | if num % x == 0: 16 | is_prime = False 17 | break 18 | if is_prime and num != 1: 19 | print('%d是素数' % num) 20 | else: 21 | print('%d不是素数' % num) 22 | -------------------------------------------------------------------------------- /Day01-15/Day04/code/for5.py: -------------------------------------------------------------------------------- 1 | """ 2 | 输入两个正整数计算最大公约数和最小公倍数 3 | 4 | Version: 0.1 5 | Author: 骆昊 6 | Date: 2018-03-01 7 | """ 8 | 9 | x = int(input('x = ')) 10 | y = int(input('y = ')) 11 | if x > y: 12 | (x, y) = (y, x) 13 | for factor in range(x, 0, -1): 14 | if x % factor == 0 and y % factor == 0: 15 | print('%d和%d的最大公约数是%d' % (x, y, factor)) 16 | print('%d和%d的最小公倍数是%d' % (x, y, x * y // factor)) 17 | break 18 | -------------------------------------------------------------------------------- /Day01-15/Day04/code/while1.py: -------------------------------------------------------------------------------- 1 | """ 2 | 用while循环实现1~100求和 3 | 4 | Version: 0.1 5 | Author: 骆昊 6 | Date: 2018-03-01 7 | """ 8 | 9 | sum = 0 10 | num = 1 11 | while num <= 100: 12 | sum += num 13 | num += 1 14 | print(sum) 15 | -------------------------------------------------------------------------------- /Day01-15/Day04/code/while2.py: -------------------------------------------------------------------------------- 1 | """ 2 | 用while循环实现1~100之间的偶数求和 3 | 4 | Version: 0.1 5 | Author: 骆昊 6 | Date: 2018-03-01 7 | """ 8 | 9 | sum = 0 10 | num = 2 11 | while num <= 100: 12 | sum += num 13 | num += 2 14 | print(sum) 15 | -------------------------------------------------------------------------------- /Day01-15/Day05/code/chicken.py: -------------------------------------------------------------------------------- 1 | """ 2 | 求解《百钱百鸡》问题 3 | 1只公鸡5元 1只母鸡3元 3只小鸡1元 用100元买100只鸡 4 | 问公鸡 母鸡 小鸡各有多少只 5 | 6 | Version: 0.1 7 | Author: 骆昊 8 | Date: 2018-03-02 9 | """ 10 | 11 | for x in range(0, 20): 12 | for y in range(0, 33): 13 | z = 100 - x - y 14 | if 5 * x + 3 * y + z / 3 == 100: 15 | print('公鸡: %d只, 母鸡: %d只, 小鸡: %d只' % (x, y, z)) 16 | 17 | # 要理解程序背后的算法 - 穷举法 18 | -------------------------------------------------------------------------------- /Day01-15/Day05/code/fibonacci.py: -------------------------------------------------------------------------------- 1 | """ 2 | 输出斐波那契数列的前20个数 3 | 1 1 2 3 5 8 13 21 ... 4 | 5 | Version: 0.1 6 | Author: 骆昊 7 | Date: 2018-03-02 8 | """ 9 | 10 | a = 0 11 | b = 1 12 | for _ in range(20): 13 | (a, b) = (b, a + b) 14 | print(a, end=' ') 15 | -------------------------------------------------------------------------------- /Day01-15/Day05/code/guess.py: -------------------------------------------------------------------------------- 1 | """ 2 | 猜数字游戏 3 | 计算机出一个1~100之间的随机数由人来猜 4 | 计算机根据人猜的数字分别给出提示大一点/小一点/猜对了 5 | 6 | Version: 0.1 7 | Author: 骆昊 8 | Date: 2018-03-02 9 | """ 10 | 11 | import random 12 | 13 | answer = random.randint(1, 100) 14 | counter = 0 15 | while True: 16 | counter += 1 17 | number = int(input('请输入: ')) 18 | if number < answer: 19 | print('大一点') 20 | elif number > answer: 21 | print('小一点') 22 | else: 23 | print('恭喜你猜对了!') 24 | break 25 | print('你总共猜了%d次' % counter) 26 | if counter > 7: 27 | print('你的智商余额明显不足') 28 | -------------------------------------------------------------------------------- /Day01-15/Day05/code/lily.py: -------------------------------------------------------------------------------- 1 | """ 2 | 找出100~999之间的所有水仙花数 3 | 水仙花数是各位立方和等于这个数本身的数 4 | 如: 153 = 1**3 + 5**3 + 3**3 5 | 6 | Version: 0.1 7 | Author: 骆昊 8 | Date: 2018-03-02 9 | """ 10 | 11 | for num in range(100, 1000): 12 | low = num % 10 13 | mid = num // 10 % 10 14 | high = num // 100 15 | if num == low ** 3 + mid ** 3 + high ** 3: 16 | print(num) 17 | -------------------------------------------------------------------------------- /Day01-15/Day05/code/palindrome.py: -------------------------------------------------------------------------------- 1 | """ 2 | 判断输入的正整数是不是回文数 3 | 回文数是指将一个正整数从左往右排列和从右往左排列值一样的数 4 | 5 | Version: 0.1 6 | Author: 骆昊 7 | Date: 2018-03-02 8 | """ 9 | 10 | num = int(input('请输入一个正整数: ')) 11 | temp = num 12 | num2 = 0 13 | while temp > 0: 14 | num2 *= 10 15 | num2 += temp % 10 16 | temp //= 10 17 | if num == num2: 18 | print('%d是回文数' % num) 19 | else: 20 | print('%d不是回文数' % num) 21 | -------------------------------------------------------------------------------- /Day01-15/Day05/code/perfect.py: -------------------------------------------------------------------------------- 1 | """ 2 | 找出1~9999之间的所有完美数 3 | 完美数是除自身外其他所有因子的和正好等于这个数本身的数 4 | 例如: 6 = 1 + 2 + 3, 28 = 1 + 2 + 4 + 7 + 14 5 | 6 | Version: 0.1 7 | Author: 骆昊 8 | Date: 2018-03-02 9 | """ 10 | import time 11 | import math 12 | 13 | start = time.clock() 14 | for num in range(1, 10000): 15 | sum = 0 16 | for factor in range(1, int(math.sqrt(num)) + 1): 17 | if num % factor == 0: 18 | sum += factor 19 | if factor > 1 and num / factor != factor: 20 | sum += num / factor 21 | if sum == num: 22 | print(num) 23 | end = time.clock() 24 | print("执行时间:", (end - start), "秒") 25 | 26 | # 通过比较上面两种不同的解决方案的执行时间 意识到优化程序的重要性 27 | -------------------------------------------------------------------------------- /Day01-15/Day05/code/prime.py: -------------------------------------------------------------------------------- 1 | """ 2 | 输出2~99之间的素数 3 | 4 | Version: 0.1 5 | Author: 骆昊 6 | Date: 2018-03-02 7 | """ 8 | 9 | import math 10 | 11 | for num in range(2, 100): 12 | is_prime = True 13 | for factor in range(2, int(math.sqrt(num)) + 1): 14 | if num % factor == 0: 15 | is_prime = False 16 | break 17 | if is_prime: 18 | print(num, end=' ') 19 | -------------------------------------------------------------------------------- /Day01-15/Day05/code/table.py: -------------------------------------------------------------------------------- 1 | """ 2 | 输出乘法口诀表(九九表) 3 | 4 | Version: 0.1 5 | Author: 骆昊 6 | Date: 2018-03-02 7 | """ 8 | 9 | for i in range(1, 10): 10 | for j in range(1, i + 1): 11 | print('%d*%d=%d' % (i, j, i * j), end='\t') 12 | print() 13 | -------------------------------------------------------------------------------- /Day01-15/Day05/总结和练习.md: -------------------------------------------------------------------------------- 1 | ## 练习 2 | 3 | ### 练习清单 4 | 5 | 1. 寻找[“水仙花数”](https://baike.baidu.com/item/%E6%B0%B4%E4%BB%99%E8%8A%B1%E6%95%B0)。 6 | 2. 寻找[“完美数”](https://baike.baidu.com/item/%E5%AE%8C%E5%85%A8%E6%95%B0/370913)。 7 | 3. [“百钱百鸡”](https://baike.baidu.com/item/%E7%99%BE%E9%B8%A1%E7%99%BE%E9%92%B1/5857320)问题。 8 | 4. 生成[“斐波拉切数列”](https://baike.baidu.com/item/%E6%96%90%E6%B3%A2%E9%82%A3%E5%A5%91%E6%95%B0%E5%88%97/99145)。 9 | 5. Craps赌博游戏。 -------------------------------------------------------------------------------- /Day01-15/Day06/code/function1.py: -------------------------------------------------------------------------------- 1 | """ 2 | 函数的定义和使用 - 计算组合数C(7,3) 3 | 4 | Version: 0.1 5 | Author: 骆昊 6 | Date: 2018-03-05 7 | """ 8 | 9 | 10 | # 将求阶乘的功能封装成一个函数 11 | def factorial(n): 12 | result = 1 13 | for num in range(1, n + 1): 14 | result *= num 15 | return result 16 | 17 | 18 | print(factorial(7) // factorial(3) // factorial(4)) 19 | -------------------------------------------------------------------------------- /Day01-15/Day06/code/function2.py: -------------------------------------------------------------------------------- 1 | """ 2 | 函数的定义和使用 - 求最大公约数和最小公倍数 3 | 4 | Version: 0.1 5 | Author: 骆昊 6 | Date: 2018-03-05 7 | """ 8 | 9 | 10 | def gcd(x, y): 11 | if x > y: 12 | (x, y) = (y, x) 13 | for factor in range(x, 1, -1): 14 | if x % factor == 0 and y % factor == 0: 15 | return factor 16 | return 1 17 | 18 | 19 | def lcm(x, y): 20 | return x * y // gcd(x, y) 21 | 22 | 23 | print(gcd(15, 27)) 24 | print(lcm(15, 27)) 25 | -------------------------------------------------------------------------------- /Day01-15/Day06/code/function6.py: -------------------------------------------------------------------------------- 1 | """ 2 | 作用域问题 3 | 4 | Version: 0.1 5 | Author: 骆昊 6 | Date: 2018-03-05 7 | """ 8 | 9 | 10 | # 局部作用域 11 | def foo1(): 12 | a = 5 13 | 14 | 15 | foo1() 16 | # print(a) # NameError 17 | 18 | # 全局作用域 19 | b = 10 20 | 21 | 22 | def foo2(): 23 | print(b) 24 | 25 | 26 | foo2() 27 | 28 | 29 | def foo3(): 30 | b = 100 # 局部变量 31 | print(b) 32 | 33 | 34 | foo3() 35 | print(b) 36 | 37 | 38 | def foo4(): 39 | global b 40 | b = 200 # 全局变量 41 | print(b) 42 | 43 | 44 | foo4() 45 | print(b) 46 | -------------------------------------------------------------------------------- /Day01-15/Day07/code/dict2.py: -------------------------------------------------------------------------------- 1 | """ 2 | 字典的常用操作 3 | 4 | Version: 0.1 5 | Author: 骆昊 6 | Date: 2018-03-06 7 | """ 8 | 9 | 10 | def main(): 11 | stu = {'name': '骆昊', 'age': 38, 'gender': True} 12 | print(stu) 13 | print(stu.keys()) 14 | print(stu.values()) 15 | print(stu.items()) 16 | for elem in stu.items(): 17 | print(elem) 18 | print(elem[0], elem[1]) 19 | if 'age' in stu: 20 | stu['age'] = 20 21 | print(stu) 22 | stu.setdefault('score', 60) 23 | print(stu) 24 | stu.setdefault('score', 100) 25 | print(stu) 26 | stu['score'] = 100 27 | print(stu) 28 | 29 | 30 | if __name__ == '__main__': 31 | main() 32 | -------------------------------------------------------------------------------- /Day01-15/Day07/code/fibonacci.py: -------------------------------------------------------------------------------- 1 | """ 2 | 生成斐波拉切数列 3 | 4 | Version: 0.1 5 | Author: 骆昊 6 | Date: 2018-03-06 7 | """ 8 | 9 | 10 | def main(): 11 | f = [1 , 1] 12 | for i in range(2, 20): 13 | f += [f[i - 1] + f[i - 2]] 14 | # f.append(f[i - 1] + f[i - 2]) 15 | for val in f: 16 | print(val, end=' ') 17 | 18 | 19 | if __name__ == '__main__': 20 | main() 21 | -------------------------------------------------------------------------------- /Day01-15/Day07/code/marquee.py: -------------------------------------------------------------------------------- 1 | """ 2 | 输入学生考试成绩计算平均分 3 | 4 | Version: 0.1 5 | Author: 骆昊 6 | Date: 2018-03-06 7 | """ 8 | 9 | import os 10 | import time 11 | 12 | 13 | def main(): 14 | str = 'Welcome to 1000 Phone Chengdu Campus ' 15 | while True: 16 | print(str) 17 | time.sleep(0.2) 18 | str = str[1:] + str[0:1] 19 | # for Windows use os.system('cls') instead 20 | os.system('clear') 21 | 22 | 23 | if __name__ == '__main__': 24 | main() 25 | -------------------------------------------------------------------------------- /Day01-15/Day07/res/fibonacci-blocks.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/Day01-15/Day07/res/fibonacci-blocks.png -------------------------------------------------------------------------------- /Day01-15/Day07/res/ipython-timeit.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/Day01-15/Day07/res/ipython-timeit.png -------------------------------------------------------------------------------- /Day01-15/Day07/res/python-set.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/Day01-15/Day07/res/python-set.png -------------------------------------------------------------------------------- /Day01-15/Day08/code/access.py: -------------------------------------------------------------------------------- 1 | class Test: 2 | 3 | def __init__(self, foo): 4 | self.__foo = foo 5 | 6 | def __bar(self): 7 | print(self.__foo) 8 | print('__bar') 9 | 10 | 11 | def main(): 12 | test = Test('hello') 13 | test._Test__bar() 14 | print(test._Test__foo) 15 | 16 | 17 | if __name__ == "__main__": 18 | main() 19 | -------------------------------------------------------------------------------- /Day01-15/Day08/code/hack.py: -------------------------------------------------------------------------------- 1 | """ 2 | 另一种创建类的方式 3 | 4 | Version: 0.1 5 | Author: 骆昊 6 | Date: 2018-03-08 7 | """ 8 | 9 | 10 | def bar(self, name): 11 | self._name = name 12 | 13 | 14 | def foo(self, course_name): 15 | print('%s正在学习%s.' % (self._name, course_name)) 16 | 17 | 18 | def main(): 19 | Student = type('Student', (object,), dict(__init__=bar, study=foo)) 20 | stu1 = Student('骆昊') 21 | stu1.study('Python程序设计') 22 | 23 | 24 | if __name__ == '__main__': 25 | main() 26 | -------------------------------------------------------------------------------- /Day01-15/Day08/res/object-feature.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/Day01-15/Day08/res/object-feature.png -------------------------------------------------------------------------------- /Day01-15/Day08/res/oop-zhihu.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/Day01-15/Day08/res/oop-zhihu.png -------------------------------------------------------------------------------- /Day01-15/Day09/res/uml-components.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/Day01-15/Day09/res/uml-components.png -------------------------------------------------------------------------------- /Day01-15/Day09/res/uml-example.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/Day01-15/Day09/res/uml-example.png -------------------------------------------------------------------------------- /Day01-15/Day10/code/turtle1.py: -------------------------------------------------------------------------------- 1 | """ 2 | 3 | 用turtle模块绘图 4 | 这是一个非常有趣的模块 它模拟一只乌龟在窗口上爬行的方式来进行绘图 5 | 6 | Version: 0.1 7 | Author: 骆昊 8 | Date: 2018-03-14 9 | 10 | """ 11 | 12 | import turtle 13 | 14 | turtle.pensize(3) 15 | turtle.penup() 16 | turtle.goto(-180, 150) 17 | turtle.pencolor('red') 18 | turtle.fillcolor('yellow') 19 | turtle.pendown() 20 | turtle.begin_fill() 21 | for _ in range(36): 22 | turtle.forward(200) 23 | turtle.right(170) 24 | turtle.end_fill() 25 | turtle.mainloop() 26 | -------------------------------------------------------------------------------- /Day01-15/Day10/res/ball-game.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/Day01-15/Day10/res/ball-game.png -------------------------------------------------------------------------------- /Day01-15/Day10/res/ball.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/Day01-15/Day10/res/ball.png -------------------------------------------------------------------------------- /Day01-15/Day11/code/csv1.py: -------------------------------------------------------------------------------- 1 | """ 2 | 读取CSV文件 3 | 4 | Version: 0.1 5 | Author: 骆昊 6 | Date: 2018-03-13 7 | """ 8 | 9 | import csv 10 | 11 | filename = 'example.csv' 12 | 13 | try: 14 | with open(filename) as f: 15 | reader = csv.reader(f) 16 | data = list(reader) 17 | except FileNotFoundError: 18 | print('无法打开文件:', filename) 19 | else: 20 | for item in data: 21 | print('%-30s%-20s%-10s' % (item[0], item[1], item[2])) 22 | -------------------------------------------------------------------------------- /Day01-15/Day11/code/ex1.py: -------------------------------------------------------------------------------- 1 | """ 2 | 异常机制 - 处理程序在运行时可能发生的状态 3 | 4 | Version: 0.1 5 | Author: 骆昊 6 | Date: 2018-03-13 7 | """ 8 | 9 | input_again = True 10 | while input_again: 11 | try: 12 | a = int(input('a = ')) 13 | b = int(input('b = ')) 14 | print('%d / %d = %f' % (a, b, a / b)) 15 | input_again = False 16 | except ValueError: 17 | print('请输入整数') 18 | except ZeroDivisionError: 19 | print('除数不能为0') 20 | # 处理异常让代码不因异常而崩溃是一方面 21 | # 更重要的是可以通过对异常的处理让代码从异常中恢复过来 22 | -------------------------------------------------------------------------------- /Day01-15/Day11/code/ex2.py: -------------------------------------------------------------------------------- 1 | """ 2 | 异常机制 - 处理程序在运行时可能发生的状态 3 | 4 | Version: 0.1 5 | Author: 骆昊 6 | Date: 2018-03-13 7 | """ 8 | 9 | input_again = True 10 | while input_again: 11 | try: 12 | a = int(input('a = ')) 13 | b = int(input('b = ')) 14 | print('%d / %d = %f' % (a, b, a / b)) 15 | input_again = False 16 | except (ValueError, ZeroDivisionError) as msg: 17 | print(msg) 18 | -------------------------------------------------------------------------------- /Day01-15/Day11/code/ex3.py: -------------------------------------------------------------------------------- 1 | """ 2 | 异常机制 - 处理程序在运行时可能发生的状态 3 | 4 | Version: 0.1 5 | Author: 骆昊 6 | Date: 2018-03-13 7 | """ 8 | 9 | import time 10 | import sys 11 | 12 | filename = input('请输入文件名: ') 13 | try: 14 | with open(filename) as f: 15 | lines = f.readlines() 16 | except FileNotFoundError as msg: 17 | print('无法打开文件:', filename) 18 | print(msg) 19 | except UnicodeDecodeError as msg: 20 | print('非文本文件无法解码') 21 | sys.exit() 22 | else: 23 | for line in lines: 24 | print(line.rstrip()) 25 | time.sleep(0.5) 26 | finally: 27 | # 此处最适合做善后工作 28 | print('不管发生什么我都会执行') 29 | -------------------------------------------------------------------------------- /Day01-15/Day11/code/ex4.py: -------------------------------------------------------------------------------- 1 | """ 2 | 引发异常和异常栈 3 | 4 | Version: 0.1 5 | Author: 骆昊 6 | Date: 2018-03-13 7 | """ 8 | 9 | 10 | def f1(): 11 | raise AssertionError('发生异常') 12 | 13 | 14 | def f2(): 15 | f1() 16 | 17 | 18 | def f3(): 19 | f2() 20 | 21 | 22 | f3() 23 | -------------------------------------------------------------------------------- /Day01-15/Day11/code/example.csv: -------------------------------------------------------------------------------- 1 | 4/5/2014 13:34,Apples,73 2 | 4/5/2014 3:41,Cherries,85 3 | 4/6/2014 12:46,Pears,14 4 | 4/8/2014 8:59,Oranges,52 5 | 4/10/2014 2:07,Apples,152 6 | 4/10/2014 18:10,Bananas,23 7 | 4/10/2014 2:40,Strawberries,98 8 | -------------------------------------------------------------------------------- /Day01-15/Day11/code/file1.py: -------------------------------------------------------------------------------- 1 | """ 2 | 从文本文件中读取数据 3 | 4 | Version: 0.1 5 | Author: 骆昊 6 | Date: 2018-03-13 7 | """ 8 | 9 | import time 10 | 11 | 12 | def main(): 13 | # 一次性读取整个文件内容 14 | with open('致橡树.txt', 'r', encoding='utf-8') as f: 15 | print(f.read()) 16 | 17 | # 通过for-in循环逐行读取 18 | with open('致橡树.txt', mode='r') as f: 19 | for line in f: 20 | print(line, end='') 21 | time.sleep(0.5) 22 | print() 23 | 24 | # 读取文件按行读取到列表中 25 | with open('致橡树.txt') as f: 26 | lines = f.readlines() 27 | print(lines) 28 | 29 | 30 | if __name__ == '__main__': 31 | main() 32 | -------------------------------------------------------------------------------- /Day01-15/Day11/code/file2.py: -------------------------------------------------------------------------------- 1 | """ 2 | 读取圆周率文件判断其中是否包含自己的生日 3 | 4 | Version: 0.1 5 | Author: 骆昊 6 | Date: 2018-03-13 7 | """ 8 | 9 | birth = input('请输入你的生日: ') 10 | with open('pi_million_digits.txt') as f: 11 | lines = f.readlines() 12 | pi_string = '' 13 | for line in lines: 14 | pi_string += line.strip() 15 | if birth in pi_string: 16 | print('Bingo!!!') 17 | -------------------------------------------------------------------------------- /Day01-15/Day11/code/file3.py: -------------------------------------------------------------------------------- 1 | """ 2 | 写文本文件 3 | 将100以内的素数写入到文件中 4 | 5 | Version: 0.1 6 | Author: 骆昊 7 | Date: 2018-03-13 8 | """ 9 | 10 | from math import sqrt 11 | 12 | 13 | def is_prime(n): 14 | for factor in range(2, int(sqrt(n)) + 1): 15 | if n % factor == 0: 16 | return False 17 | return True 18 | 19 | 20 | # 试一试有什么不一样 21 | # with open('prime.txt', 'a') as f: 22 | with open('prime.txt', 'w') as f: 23 | for num in range(2, 100): 24 | if is_prime(num): 25 | f.write(str(num) + '\n') 26 | print('写入完成!') 27 | -------------------------------------------------------------------------------- /Day01-15/Day11/code/file4.py: -------------------------------------------------------------------------------- 1 | """ 2 | 读写二进制文件 3 | 4 | Version: 0.1 5 | Author: 骆昊 6 | Date: 2018-03-13 7 | """ 8 | import base64 9 | 10 | with open('mm.jpg', 'rb') as f: 11 | data = f.read() 12 | # print(type(data)) 13 | # print(data) 14 | print('字节数:', len(data)) 15 | # 将图片处理成BASE-64编码 16 | print(base64.b64encode(data)) 17 | 18 | with open('girl.jpg', 'wb') as f: 19 | f.write(data) 20 | print('写入完成!') 21 | -------------------------------------------------------------------------------- /Day01-15/Day11/code/json2.py: -------------------------------------------------------------------------------- 1 | """ 2 | 写入JSON文件 3 | 4 | Version: 0.1 5 | Author: 骆昊 6 | Date: 2018-03-13 7 | """ 8 | 9 | import json 10 | 11 | teacher_dict = {'name': '白元芳', 'age': 25, 'title': '讲师'} 12 | json_str = json.dumps(teacher_dict) 13 | print(json_str) 14 | print(type(json_str)) 15 | fruits_list = ['apple', 'orange', 'strawberry', 'banana', 'pitaya'] 16 | json_str = json.dumps(fruits_list) 17 | print(json_str) 18 | print(type(json_str)) 19 | -------------------------------------------------------------------------------- /Day01-15/Day11/code/mm.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/Day01-15/Day11/code/mm.jpg -------------------------------------------------------------------------------- /Day01-15/Day11/code/teacher.csv: -------------------------------------------------------------------------------- 1 | 骆昊,38,叫兽 2 | 狄仁杰,25,砖家 3 | -------------------------------------------------------------------------------- /Day01-15/Day11/code/致橡树.txt: -------------------------------------------------------------------------------- 1 | 我如果爱你 2 | 绝不学攀援的凌霄花 3 | 借你的高枝炫耀自己 4 | 5 | 我如果爱你 6 | 绝不学痴情的鸟儿 7 | 为绿荫重复单调的歌曲 8 | 9 | 也不止像泉源 10 | 常年送来清凉的慰藉 11 | 也不止像险峰 12 | 增加你的高度 衬托你的威仪 13 | 甚至日光 甚至春雨 14 | 不 这些都还不够 15 | 我必须是你近旁的一株木棉 16 | 作为树的形象和你站在一起 17 | 根 紧握在地下 18 | 叶 相触在云里 19 | 每一阵风过 20 | 我们都互相致意 21 | 但没有人 听懂我们的言语 22 | 你有你的铜枝铁干 23 | 像刀 像剑 也像戟; 24 | 我有我红硕的花朵 25 | 像沉重的叹息 又像英勇的火炬 26 | 我们分担寒潮、风雷、霹雳 27 | 我们共享雾霭、流岚、虹霓 28 | 仿佛永远分离 却又终身相依 29 | 这才是伟大的爱情 30 | 坚贞就在这里 31 | 爱 不仅爱你伟岸的身躯 32 | 也爱你坚持的位置 足下的土地 -------------------------------------------------------------------------------- /Day01-15/Day11/res/file-open-mode.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/Day01-15/Day11/res/file-open-mode.png -------------------------------------------------------------------------------- /Day01-15/Day12/code/test3.py: -------------------------------------------------------------------------------- 1 | """ 2 | 验证输入用户名和QQ号是否有效并给出对应的提示信息 3 | 4 | 要求: 5 | 用户名必须由字母、数字或下划线构成且长度在6~20个字符之间 6 | QQ号是5~12的数字且首位不能为0 7 | """ 8 | 9 | import re 10 | 11 | 12 | def main(): 13 | username = input('请输入用户名: ') 14 | qq = input('请输入QQ号: ') 15 | m1 = re.match(r'^[0-9a-zA-Z_]{6,20}$', username) 16 | if not m1: 17 | print('请输入有效的用户名.') 18 | m2 = re.match(r'^[1-9]\d{4,11}$', qq) 19 | if not m2: 20 | print('请输入有效的QQ号.') 21 | if m1 and m2: 22 | print('你输入的信息是有效的!') 23 | 24 | 25 | if __name__ == '__main__': 26 | main() 27 | -------------------------------------------------------------------------------- /Day01-15/Day12/code/test5.py: -------------------------------------------------------------------------------- 1 | """ 2 | 不良内容过滤 3 | """ 4 | import re 5 | 6 | 7 | def main(): 8 | sentence = '你丫是傻叉吗? 我操你大爷的. Fuck you.' 9 | purified = re.sub('[操肏艹]|fuck|shit|傻[比屄逼叉缺吊屌]|煞笔', 10 | '*', sentence, flags=re.IGNORECASE) 11 | print(purified) 12 | 13 | 14 | if __name__ == '__main__': 15 | main() 16 | -------------------------------------------------------------------------------- /Day01-15/Day12/res/tel-start-number.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/Day01-15/Day12/res/tel-start-number.png -------------------------------------------------------------------------------- /Day01-15/Day13/code/asyncio2.py: -------------------------------------------------------------------------------- 1 | """ 2 | 异步I/O操作 - async和await 3 | 4 | Version: 0.1 5 | Author: 骆昊 6 | Date: 2018-03-21 7 | """ 8 | import asyncio 9 | import threading 10 | 11 | 12 | # 通过async修饰的函数不再是普通函数而是一个协程 13 | # 注意async和await将在Python 3.7中作为关键字出现 14 | async def hello(): 15 | print('%s: hello, world!' % threading.current_thread()) 16 | await asyncio.sleep(2) 17 | print('%s: goodbye, world!' % threading.current_thread()) 18 | 19 | 20 | loop = asyncio.get_event_loop() 21 | tasks = [hello(), hello()] 22 | # 等待两个异步I/O操作执行结束 23 | loop.run_until_complete(asyncio.wait(tasks)) 24 | loop.close() 25 | -------------------------------------------------------------------------------- /Day01-15/Day13/code/generator1.py: -------------------------------------------------------------------------------- 1 | """ 2 | 生成器 - 生成器语法 3 | 4 | Version: 0.1 5 | Author: 骆昊 6 | Date: 2018-03-21 7 | """ 8 | 9 | seq = [x * x for x in range(10)] 10 | print(seq) 11 | 12 | gen = (x * x for x in range(10)) 13 | print(gen) 14 | for x in gen: 15 | print(x) 16 | 17 | num = 10 18 | gen = (x ** y for x, y in zip(range(1, num), range(num - 1, 0, -1))) 19 | print(gen) 20 | n = 1 21 | while n < num: 22 | print(next(gen)) 23 | n += 1 24 | -------------------------------------------------------------------------------- /Day01-15/Day13/code/generator2.py: -------------------------------------------------------------------------------- 1 | """ 2 | 生成器 - 使用yield关键字 3 | 4 | Version: 0.1 5 | Author: 骆昊 6 | Date: 2018-03-21 7 | """ 8 | 9 | 10 | def fib(num): 11 | n, a, b = 0, 0, 1 12 | while n < num: 13 | yield b 14 | a, b = b, a + b 15 | n += 1 16 | 17 | 18 | for x in fib(20): 19 | print(x) 20 | -------------------------------------------------------------------------------- /Day01-15/Day13/code/multiprocess3.py: -------------------------------------------------------------------------------- 1 | """ 2 | 创建进程调用其他程序 3 | 4 | Version: 0.1 5 | Author: 骆昊 6 | Date: 2018-03-20 7 | """ 8 | 9 | import subprocess 10 | import sys 11 | 12 | def main(): 13 | # 通过sys.argv获取命令行参数 14 | if len(sys.argv) > 1: 15 | # 第一个命令行参数是程序本身所以从第二个开始取 16 | for index in range(1, len(sys.argv)): 17 | try: 18 | # 通过subprocess模块的call函数启动子进程 19 | status = subprocess.call(sys.argv[index]) 20 | except FileNotFoundError: 21 | print('不能执行%s命令' % sys.argv[index]) 22 | else: 23 | print('请使用命令行参数指定要执行的进程') 24 | 25 | 26 | if __name__ == '__main__': 27 | main() 28 | -------------------------------------------------------------------------------- /Day01-15/Day13/code/multiprocess4.py: -------------------------------------------------------------------------------- 1 | from time import time 2 | 3 | 4 | def main(): 5 | total = 0 6 | number_list = [x for x in range(1, 100000001)] 7 | start = time() 8 | for number in number_list: 9 | total += number 10 | print(total) 11 | end = time() 12 | print('Execution time: %.3fs' % (end - start)) 13 | 14 | 15 | if __name__ == '__main__': 16 | main() -------------------------------------------------------------------------------- /Day01-15/Day13/code/singlethread1.py: -------------------------------------------------------------------------------- 1 | """ 2 | 不使用多线程的情况 - 模拟多个下载任务 3 | 4 | Version: 0.1 5 | Author: 骆昊 6 | Date: 2018-03-20 7 | """ 8 | 9 | from random import randint 10 | from time import time, sleep 11 | 12 | 13 | def download_task(filename): 14 | print('开始下载%s...' % filename) 15 | time_to_download = randint(5, 10) 16 | sleep(time_to_download) 17 | print('下载完成! 耗费了%d秒' % time_to_download) 18 | 19 | 20 | def main(): 21 | start = time() 22 | download_task('Python从入门到住院.pdf') 23 | download_task('Peking Hot.avi') 24 | end = time() 25 | print('总共耗费了%.2f秒.' % (end - start)) 26 | 27 | 28 | if __name__ == '__main__': 29 | main() 30 | -------------------------------------------------------------------------------- /Day01-15/Day13/res/macos-monitor.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/Day01-15/Day13/res/macos-monitor.png -------------------------------------------------------------------------------- /Day01-15/Day14-A/code/guido.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/Day01-15/Day14-A/code/guido.jpg -------------------------------------------------------------------------------- /Day01-15/Day14-A/code/socket1.py: -------------------------------------------------------------------------------- 1 | """ 2 | 套接字 - 基于TCP协议创建时间服务器 3 | 4 | Version: 0.1 5 | Author: 骆昊 6 | Date: 2018-03-22 7 | """ 8 | 9 | from socket import * 10 | from time import * 11 | 12 | server = socket(AF_INET, SOCK_STREAM) 13 | server.bind(('localhost', 6789)) 14 | server.listen() 15 | print('服务器已经启动正在监听客户端连接.') 16 | while True: 17 | client, addr = server.accept() 18 | print('客户端%s:%d连接成功.' % (addr[0], addr[1])) 19 | currtime = localtime(time()) 20 | timestr = strftime('%Y-%m-%d %H:%M:%S', currtime) 21 | client.send(timestr.encode('utf-8')) 22 | client.close() 23 | server.close() 24 | -------------------------------------------------------------------------------- /Day01-15/Day14-A/code/socket2.py: -------------------------------------------------------------------------------- 1 | """ 2 | 套接字 - 基于TCP协议创建时间客户端 3 | 4 | Version: 0.1 5 | Author: 骆昊 6 | Date: 2018-03-22 7 | """ 8 | 9 | from socket import * 10 | 11 | client = socket(AF_INET, SOCK_STREAM) 12 | client.connect(('localhost', 6789)) 13 | while True: 14 | data = client.recv(1024) 15 | if not data: 16 | break 17 | print(data.decode('utf-8')) 18 | client.close() 19 | -------------------------------------------------------------------------------- /Day01-15/Day14-A/code/socket3.py: -------------------------------------------------------------------------------- 1 | """ 2 | 套接字 - 基于UDP协议Echo服务器 3 | 4 | Version: 0.1 5 | Author: 骆昊 6 | Date: 2018-03-22 7 | """ 8 | from socket import * 9 | from time import * 10 | 11 | server = socket(AF_INET, SOCK_DGRAM) 12 | server.bind(('localhost', 6789)) 13 | while True: 14 | data, addr = server.recvfrom(1024) 15 | server.sendto(data, addr) 16 | server.close() 17 | -------------------------------------------------------------------------------- /Day01-15/Day14-A/code/socket4.py: -------------------------------------------------------------------------------- 1 | """ 2 | 套接字 - 基于UDP协议创建Echo客户端 3 | 4 | Version: 0.1 5 | Author: 骆昊 6 | Date: 2018-03-22 7 | """ 8 | 9 | from socket import * 10 | 11 | client = socket(AF_INET, SOCK_DGRAM) 12 | while True: 13 | data_str = input('请输入: ') 14 | client.sendto(data_str.encode('utf-8'), ('localhost', 6789)) 15 | data, addr = client.recvfrom(1024) 16 | data_str = data.decode('utf-8') 17 | print('服务器回应:', data_str) 18 | if data_str == 'bye': 19 | break 20 | client.close() 21 | -------------------------------------------------------------------------------- /Day01-15/Day14-A/code/socket5.py: -------------------------------------------------------------------------------- 1 | """ 2 | 使用socketserver模块创建时间服务器 3 | 4 | Version: 0.1 5 | Author: 骆昊 6 | Date: 2018-03-22 7 | """ 8 | from socketserver import TCPServer, StreamRequestHandler 9 | from time import * 10 | 11 | 12 | class EchoRequestHandler(StreamRequestHandler): 13 | 14 | def handle(self): 15 | currtime = localtime(time()) 16 | timestr = strftime('%Y-%m-%d %H:%M:%S', currtime) 17 | self.wfile.write(timestr.encode('utf-8')) 18 | 19 | 20 | server = TCPServer(('localhost', 6789), EchoRequestHandler) 21 | server.serve_forever() 22 | -------------------------------------------------------------------------------- /Day01-15/Day14-A/code/timeclient.py: -------------------------------------------------------------------------------- 1 | from socket import socket 2 | 3 | 4 | def main(): 5 | client = socket() 6 | client.connect(('10.7.152.69', 6789)) 7 | print(client.recv(1024).decode('utf-8')) 8 | client.close() 9 | 10 | 11 | if __name__ == '__main__': 12 | main() 13 | -------------------------------------------------------------------------------- /Day01-15/Day14-A/res/TCP-IP-model.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/Day01-15/Day14-A/res/TCP-IP-model.png -------------------------------------------------------------------------------- /Day01-15/Day14-A/res/after-browser.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/Day01-15/Day14-A/res/after-browser.jpg -------------------------------------------------------------------------------- /Day01-15/Day14-A/res/arpanet.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/Day01-15/Day14-A/res/arpanet.png -------------------------------------------------------------------------------- /Day01-15/Day14-A/res/before-browser.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/Day01-15/Day14-A/res/before-browser.jpg -------------------------------------------------------------------------------- /Day01-15/Day14-A/res/browers.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/Day01-15/Day14-A/res/browers.jpg -------------------------------------------------------------------------------- /Day01-15/Day14-A/res/browser-market-place.jpeg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/Day01-15/Day14-A/res/browser-market-place.jpeg -------------------------------------------------------------------------------- /Day01-15/Day14-A/res/how-data-is-processed.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/Day01-15/Day14-A/res/how-data-is-processed.jpg -------------------------------------------------------------------------------- /Day01-15/Day14-A/res/osi_rm.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/Day01-15/Day14-A/res/osi_rm.gif -------------------------------------------------------------------------------- /Day01-15/Day14-A/res/osimodel.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/Day01-15/Day14-A/res/osimodel.png -------------------------------------------------------------------------------- /Day01-15/Day14-A/res/tcpipprotocols.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/Day01-15/Day14-A/res/tcpipprotocols.png -------------------------------------------------------------------------------- /Day01-15/Day14-A/res/telnet.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/Day01-15/Day14-A/res/telnet.png -------------------------------------------------------------------------------- /Day01-15/Day15/code/excel2.py: -------------------------------------------------------------------------------- 1 | """ 2 | 读取Excel文件 3 | 4 | Version: 0.1 5 | Author: 骆昊 6 | Date: 2018-03-26 7 | """ 8 | 9 | from openpyxl import load_workbook 10 | from openpyxl import Workbook 11 | 12 | workbook = load_workbook('./res/学生明细表.xlsx') 13 | print(workbook.sheetnames) 14 | sheet = workbook[workbook.sheetnames[0]] 15 | print(sheet.title) 16 | for row in range(2, 7): 17 | for col in range(65, 70): 18 | cell_index = chr(col) + str(row) 19 | print(sheet[cell_index].value, end='\t') 20 | print() 21 | -------------------------------------------------------------------------------- /Day01-15/Day15/code/pdf1.py: -------------------------------------------------------------------------------- 1 | """ 2 | 创建PDF文件 3 | 4 | Version: 0.1 5 | Author: 骆昊 6 | Date: 2018-03-26 7 | """ -------------------------------------------------------------------------------- /Day01-15/Day15/code/pdf2.py: -------------------------------------------------------------------------------- 1 | """ 2 | 读取PDF文件 3 | 4 | Version: 0.1 5 | Author: 骆昊 6 | Date: 2018-03-26 7 | """ 8 | 9 | from PyPDF2 import PdfFileReader 10 | 11 | with open('./res/Python课程大纲.pdf', 'rb') as f: 12 | reader = PdfFileReader(f, strict=False) 13 | print(reader.numPages) 14 | if reader.isEncrypted: 15 | reader.decrypt('') 16 | current_page = reader.getPage(5) 17 | print(current_page) 18 | print(current_page.extractText()) 19 | -------------------------------------------------------------------------------- /Day01-15/Day15/code/pillow1.py: -------------------------------------------------------------------------------- 1 | """ 2 | 使用pillow操作图像 3 | 4 | Version: 0.1 5 | Author: 骆昊 6 | Date: 2018-03-26 7 | """ 8 | from PIL import Image 9 | 10 | img = Image.open('./res/guido.jpg') 11 | print(img.size) 12 | print(img.format) 13 | print(img.format_description) 14 | img.save('./res/guido.png') 15 | 16 | img2 = Image.open('./res/guido.png') 17 | img3 = img2.crop((335, 435, 430, 615)) 18 | for x in range(4): 19 | for y in range(5): 20 | img2.paste(img3, (95 * y , 180 * x)) 21 | img2.resize((img.size[0] // 2, img.size[1] // 2)) 22 | img2.rotate(90) 23 | img2.save('./res/guido2.png') 24 | -------------------------------------------------------------------------------- /Day01-15/Day15/code/res/Python课程大纲.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/Day01-15/Day15/code/res/Python课程大纲.pdf -------------------------------------------------------------------------------- /Day01-15/Day15/code/res/guido.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/Day01-15/Day15/code/res/guido.jpg -------------------------------------------------------------------------------- /Day01-15/Day15/code/res/学生明细表.xlsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/Day01-15/Day15/code/res/学生明细表.xlsx -------------------------------------------------------------------------------- /Day01-15/Day15/code/res/用函数还是用复杂的表达式.docx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/Day01-15/Day15/code/res/用函数还是用复杂的表达式.docx -------------------------------------------------------------------------------- /Day01-15/Day15/code/word1.py: -------------------------------------------------------------------------------- 1 | """ 2 | 创建Word文件 3 | 4 | Version: 0.1 5 | Author: 骆昊 6 | Date: 2018-03-26 7 | """ -------------------------------------------------------------------------------- /Day01-15/Day15/code/word2.py: -------------------------------------------------------------------------------- 1 | """ 2 | 读取Word文件 3 | 4 | Version: 0.1 5 | Author: 骆昊 6 | Date: 2018-03-26 7 | """ 8 | 9 | from docx import Document 10 | 11 | doc = Document('./res/用函数还是用复杂的表达式.docx') 12 | print(len(doc.paragraphs)) 13 | print(doc.paragraphs[0].text) 14 | # print(doc.paragraphs[1].runs[0].text) 15 | 16 | content = [] 17 | for para in doc.paragraphs: 18 | content.append(para.text) 19 | print(''.join(content)) 20 | -------------------------------------------------------------------------------- /Day16-20/code/example11.py: -------------------------------------------------------------------------------- 1 | """ 2 | 变量的作用域以及Python搜索变量的顺序 3 | LEGB: Local --> Embedded --> Global --> Built-in 4 | global - 声明或定义全局变量(要么直接使用现有的全局作用域的变量,要么定义一个变量放到全局作用域) 5 | nonlocal - 声明使用嵌套作用域的变量(如果嵌套作用域没有对应的变量直接报错) 6 | """ 7 | x = 100 8 | 9 | 10 | def foo(): 11 | global x 12 | x = 200 13 | 14 | def bar(): 15 | x = 300 16 | print(x) 17 | 18 | bar() 19 | print(x) 20 | 21 | 22 | foo() 23 | print(x) 24 | -------------------------------------------------------------------------------- /Day16-20/code/example13.py: -------------------------------------------------------------------------------- 1 | from example12 import EmployeeFactory 2 | 3 | 4 | def main(): 5 | """主函数""" 6 | emps = [ 7 | EmployeeFactory.create('M', '曹操'), 8 | EmployeeFactory.create('P', '荀彧', 120), 9 | EmployeeFactory.create('P', '郭嘉', 85), 10 | EmployeeFactory.create('S', '典韦', 123000), 11 | ] 12 | for emp in emps: 13 | print('%s: %.2f元' % (emp.name, emp.get_salary())) 14 | 15 | 16 | if __name__ == '__main__': 17 | main() 18 | -------------------------------------------------------------------------------- /Day16-20/res/algorithm_complexity_1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/Day16-20/res/algorithm_complexity_1.png -------------------------------------------------------------------------------- /Day16-20/res/algorithm_complexity_2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/Day16-20/res/algorithm_complexity_2.png -------------------------------------------------------------------------------- /Day21-30/code/new/web1901/audio/test-audio.mp3: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/Day21-30/code/new/web1901/audio/test-audio.mp3 -------------------------------------------------------------------------------- /Day21-30/code/new/web1901/audio/test-audio.ogg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/Day21-30/code/new/web1901/audio/test-audio.ogg -------------------------------------------------------------------------------- /Day21-30/code/new/web1901/example_of_audio_video.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 音视频 6 | 7 | 8 | 11 | 14 | 15 | 16 | -------------------------------------------------------------------------------- /Day21-30/code/new/web1901/example_of_js_1.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 猜数字 6 | 7 | 8 | 27 | 28 | 29 | -------------------------------------------------------------------------------- /Day21-30/code/new/web1901/example_of_js_7.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 17 | 18 | 19 | -------------------------------------------------------------------------------- /Day21-30/code/new/web1901/fonts/chunkfive.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/Day21-30/code/new/web1901/fonts/chunkfive.ttf -------------------------------------------------------------------------------- /Day21-30/code/new/web1901/fonts/quicksand.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/Day21-30/code/new/web1901/fonts/quicksand.ttf -------------------------------------------------------------------------------- /Day21-30/code/new/web1901/images/a1.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/Day21-30/code/new/web1901/images/a1.jpg -------------------------------------------------------------------------------- /Day21-30/code/new/web1901/images/a2.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/Day21-30/code/new/web1901/images/a2.jpg -------------------------------------------------------------------------------- /Day21-30/code/new/web1901/images/a3.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/Day21-30/code/new/web1901/images/a3.jpg -------------------------------------------------------------------------------- /Day21-30/code/new/web1901/images/add.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/Day21-30/code/new/web1901/images/add.gif -------------------------------------------------------------------------------- /Day21-30/code/new/web1901/images/backdrop.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/Day21-30/code/new/web1901/images/backdrop.gif -------------------------------------------------------------------------------- /Day21-30/code/new/web1901/images/bird.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/Day21-30/code/new/web1901/images/bird.gif -------------------------------------------------------------------------------- /Day21-30/code/new/web1901/images/bok-choi.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/Day21-30/code/new/web1901/images/bok-choi.jpg -------------------------------------------------------------------------------- /Day21-30/code/new/web1901/images/button-sprite.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/Day21-30/code/new/web1901/images/button-sprite.jpg -------------------------------------------------------------------------------- /Day21-30/code/new/web1901/images/buttons.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/Day21-30/code/new/web1901/images/buttons.jpg -------------------------------------------------------------------------------- /Day21-30/code/new/web1901/images/chocolate-islands.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/Day21-30/code/new/web1901/images/chocolate-islands.jpg -------------------------------------------------------------------------------- /Day21-30/code/new/web1901/images/clavinet.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/Day21-30/code/new/web1901/images/clavinet.jpg -------------------------------------------------------------------------------- /Day21-30/code/new/web1901/images/dark-wood.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/Day21-30/code/new/web1901/images/dark-wood.jpg -------------------------------------------------------------------------------- /Day21-30/code/new/web1901/images/dots.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/Day21-30/code/new/web1901/images/dots.gif -------------------------------------------------------------------------------- /Day21-30/code/new/web1901/images/email.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/Day21-30/code/new/web1901/images/email.png -------------------------------------------------------------------------------- /Day21-30/code/new/web1901/images/header.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/Day21-30/code/new/web1901/images/header.gif -------------------------------------------------------------------------------- /Day21-30/code/new/web1901/images/header.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/Day21-30/code/new/web1901/images/header.jpg -------------------------------------------------------------------------------- /Day21-30/code/new/web1901/images/icon-plus.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/Day21-30/code/new/web1901/images/icon-plus.png -------------------------------------------------------------------------------- /Day21-30/code/new/web1901/images/icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/Day21-30/code/new/web1901/images/icon.png -------------------------------------------------------------------------------- /Day21-30/code/new/web1901/images/icons.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/Day21-30/code/new/web1901/images/icons.jpg -------------------------------------------------------------------------------- /Day21-30/code/new/web1901/images/keys.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/Day21-30/code/new/web1901/images/keys.jpg -------------------------------------------------------------------------------- /Day21-30/code/new/web1901/images/lemon-posset.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/Day21-30/code/new/web1901/images/lemon-posset.jpg -------------------------------------------------------------------------------- /Day21-30/code/new/web1901/images/logo-1.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/Day21-30/code/new/web1901/images/logo-1.gif -------------------------------------------------------------------------------- /Day21-30/code/new/web1901/images/logo-2.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/Day21-30/code/new/web1901/images/logo-2.gif -------------------------------------------------------------------------------- /Day21-30/code/new/web1901/images/logo-3.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/Day21-30/code/new/web1901/images/logo-3.gif -------------------------------------------------------------------------------- /Day21-30/code/new/web1901/images/logo.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/Day21-30/code/new/web1901/images/logo.gif -------------------------------------------------------------------------------- /Day21-30/code/new/web1901/images/magnolia-large.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/Day21-30/code/new/web1901/images/magnolia-large.jpg -------------------------------------------------------------------------------- /Day21-30/code/new/web1901/images/magnolia-medium.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/Day21-30/code/new/web1901/images/magnolia-medium.jpg -------------------------------------------------------------------------------- /Day21-30/code/new/web1901/images/magnolia-small.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/Day21-30/code/new/web1901/images/magnolia-small.jpg -------------------------------------------------------------------------------- /Day21-30/code/new/web1901/images/otters.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/Day21-30/code/new/web1901/images/otters.jpg -------------------------------------------------------------------------------- /Day21-30/code/new/web1901/images/pattern.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/Day21-30/code/new/web1901/images/pattern.gif -------------------------------------------------------------------------------- /Day21-30/code/new/web1901/images/picture-1.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/Day21-30/code/new/web1901/images/picture-1.jpg -------------------------------------------------------------------------------- /Day21-30/code/new/web1901/images/picture-2.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/Day21-30/code/new/web1901/images/picture-2.jpg -------------------------------------------------------------------------------- /Day21-30/code/new/web1901/images/picture-3.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/Day21-30/code/new/web1901/images/picture-3.jpg -------------------------------------------------------------------------------- /Day21-30/code/new/web1901/images/print-01.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/Day21-30/code/new/web1901/images/print-01.jpg -------------------------------------------------------------------------------- /Day21-30/code/new/web1901/images/print-02.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/Day21-30/code/new/web1901/images/print-02.jpg -------------------------------------------------------------------------------- /Day21-30/code/new/web1901/images/print-03.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/Day21-30/code/new/web1901/images/print-03.jpg -------------------------------------------------------------------------------- /Day21-30/code/new/web1901/images/print-04.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/Day21-30/code/new/web1901/images/print-04.jpg -------------------------------------------------------------------------------- /Day21-30/code/new/web1901/images/print-05.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/Day21-30/code/new/web1901/images/print-05.jpg -------------------------------------------------------------------------------- /Day21-30/code/new/web1901/images/print-06.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/Day21-30/code/new/web1901/images/print-06.jpg -------------------------------------------------------------------------------- /Day21-30/code/new/web1901/images/puppy.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/Day21-30/code/new/web1901/images/puppy.jpg -------------------------------------------------------------------------------- /Day21-30/code/new/web1901/images/python-logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/Day21-30/code/new/web1901/images/python-logo.png -------------------------------------------------------------------------------- /Day21-30/code/new/web1901/images/quokka.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/Day21-30/code/new/web1901/images/quokka.jpg -------------------------------------------------------------------------------- /Day21-30/code/new/web1901/images/rhodes.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/Day21-30/code/new/web1901/images/rhodes.jpg -------------------------------------------------------------------------------- /Day21-30/code/new/web1901/images/roasted-brussel-sprouts.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/Day21-30/code/new/web1901/images/roasted-brussel-sprouts.jpg -------------------------------------------------------------------------------- /Day21-30/code/new/web1901/images/shadow.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/Day21-30/code/new/web1901/images/shadow.png -------------------------------------------------------------------------------- /Day21-30/code/new/web1901/images/slide-1.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/Day21-30/code/new/web1901/images/slide-1.jpg -------------------------------------------------------------------------------- /Day21-30/code/new/web1901/images/slide-2.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/Day21-30/code/new/web1901/images/slide-2.jpg -------------------------------------------------------------------------------- /Day21-30/code/new/web1901/images/slide-3.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/Day21-30/code/new/web1901/images/slide-3.jpg -------------------------------------------------------------------------------- /Day21-30/code/new/web1901/images/slide-4.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/Day21-30/code/new/web1901/images/slide-4.jpg -------------------------------------------------------------------------------- /Day21-30/code/new/web1901/images/star.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/Day21-30/code/new/web1901/images/star.png -------------------------------------------------------------------------------- /Day21-30/code/new/web1901/images/subscribe.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/Day21-30/code/new/web1901/images/subscribe.jpg -------------------------------------------------------------------------------- /Day21-30/code/new/web1901/images/teriyaki.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/Day21-30/code/new/web1901/images/teriyaki.jpg -------------------------------------------------------------------------------- /Day21-30/code/new/web1901/images/thumb-1.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/Day21-30/code/new/web1901/images/thumb-1.jpg -------------------------------------------------------------------------------- /Day21-30/code/new/web1901/images/thumb-2.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/Day21-30/code/new/web1901/images/thumb-2.jpg -------------------------------------------------------------------------------- /Day21-30/code/new/web1901/images/thumb-3.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/Day21-30/code/new/web1901/images/thumb-3.jpg -------------------------------------------------------------------------------- /Day21-30/code/new/web1901/images/tim.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/Day21-30/code/new/web1901/images/tim.png -------------------------------------------------------------------------------- /Day21-30/code/new/web1901/images/title.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/Day21-30/code/new/web1901/images/title.gif -------------------------------------------------------------------------------- /Day21-30/code/new/web1901/images/tulip.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/Day21-30/code/new/web1901/images/tulip.gif -------------------------------------------------------------------------------- /Day21-30/code/new/web1901/images/twitter.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/Day21-30/code/new/web1901/images/twitter.png -------------------------------------------------------------------------------- /Day21-30/code/new/web1901/images/web.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/Day21-30/code/new/web1901/images/web.png -------------------------------------------------------------------------------- /Day21-30/code/new/web1901/images/wurlitzer.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/Day21-30/code/new/web1901/images/wurlitzer.jpg -------------------------------------------------------------------------------- /Day21-30/code/new/web1901/images/zucchini-cake.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/Day21-30/code/new/web1901/images/zucchini-cake.jpg -------------------------------------------------------------------------------- /Day21-30/code/new/web1901/js/hello.js: -------------------------------------------------------------------------------- 1 | function randomColor(opacity=1) { 2 | let r = parseInt(Math.random() * 256) 3 | let g = parseInt(Math.random() * 256) 4 | let b = parseInt(Math.random() * 256) 5 | return `rgba(${r}, ${g}, ${b}, ${opacity})` 6 | } 7 | -------------------------------------------------------------------------------- /Day21-30/code/new/web1901/video/puppy.flv: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/Day21-30/code/new/web1901/video/puppy.flv -------------------------------------------------------------------------------- /Day21-30/code/new/web1901/video/puppy.mp4: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/Day21-30/code/new/web1901/video/puppy.mp4 -------------------------------------------------------------------------------- /Day21-30/code/new/web1901/video/puppy.webm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/Day21-30/code/new/web1901/video/puppy.webm -------------------------------------------------------------------------------- /Day21-30/code/old/html+css/qq_link.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 聊我吧 10 | 14 | 19 | 20 | -------------------------------------------------------------------------------- /Day21-30/code/old/javascript/img/a1.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/Day21-30/code/old/javascript/img/a1.jpg -------------------------------------------------------------------------------- /Day21-30/code/old/javascript/img/a2.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/Day21-30/code/old/javascript/img/a2.jpg -------------------------------------------------------------------------------- /Day21-30/code/old/javascript/img/a3.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/Day21-30/code/old/javascript/img/a3.jpg -------------------------------------------------------------------------------- /Day21-30/code/old/javascript/img/picture-1.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/Day21-30/code/old/javascript/img/picture-1.jpg -------------------------------------------------------------------------------- /Day21-30/code/old/javascript/img/picture-2.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/Day21-30/code/old/javascript/img/picture-2.jpg -------------------------------------------------------------------------------- /Day21-30/code/old/javascript/img/picture-3.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/Day21-30/code/old/javascript/img/picture-3.jpg -------------------------------------------------------------------------------- /Day21-30/code/old/javascript/img/slide-1.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/Day21-30/code/old/javascript/img/slide-1.jpg -------------------------------------------------------------------------------- /Day21-30/code/old/javascript/img/slide-2.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/Day21-30/code/old/javascript/img/slide-2.jpg -------------------------------------------------------------------------------- /Day21-30/code/old/javascript/img/slide-3.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/Day21-30/code/old/javascript/img/slide-3.jpg -------------------------------------------------------------------------------- /Day21-30/code/old/javascript/img/slide-4.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/Day21-30/code/old/javascript/img/slide-4.jpg -------------------------------------------------------------------------------- /Day21-30/code/old/javascript/img/thumb-1.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/Day21-30/code/old/javascript/img/thumb-1.jpg -------------------------------------------------------------------------------- /Day21-30/code/old/javascript/img/thumb-2.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/Day21-30/code/old/javascript/img/thumb-2.jpg -------------------------------------------------------------------------------- /Day21-30/code/old/javascript/img/thumb-3.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/Day21-30/code/old/javascript/img/thumb-3.jpg -------------------------------------------------------------------------------- /Day21-30/code/old/javascript/js/mylib.js: -------------------------------------------------------------------------------- 1 | function randomColor() { 2 | var r = parseInt(Math.random() * 128 + 128); 3 | var g = parseInt(Math.random() * 128 + 128); 4 | var b = parseInt(Math.random() * 128 + 128); 5 | return 'rgb(' + r + ', ' + g + ', ' + b + ')'; 6 | } -------------------------------------------------------------------------------- /Day21-30/code/old/javascript/message.json: -------------------------------------------------------------------------------- 1 | { 2 | "from": "骆昊", 3 | "to": "王大锤", 4 | "content": "今天晚上你请我吃饭!" 5 | } -------------------------------------------------------------------------------- /Day21-30/code/old/javascript/message.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 骆昊 4 | 王大锤 5 | 今天晚上你请我吃饭! 6 | -------------------------------------------------------------------------------- /Day21-30/docs/Bulma- Free, open source, & modern CSS framework based on Flexbox.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/Day21-30/docs/Bulma- Free, open source, & modern CSS framework based on Flexbox.pdf -------------------------------------------------------------------------------- /Day21-30/docs/Why Vue.mp4: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/Day21-30/docs/Why Vue.mp4 -------------------------------------------------------------------------------- /Day21-30/docs/Why you should use Bulma.mp4: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/Day21-30/docs/Why you should use Bulma.mp4 -------------------------------------------------------------------------------- /Day21-30/res/baidu_echarts.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/Day21-30/res/baidu_echarts.png -------------------------------------------------------------------------------- /Day21-30/res/bootstrap-layoutit.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/Day21-30/res/bootstrap-layoutit.png -------------------------------------------------------------------------------- /Day21-30/res/browser-joke-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/Day21-30/res/browser-joke-1.png -------------------------------------------------------------------------------- /Day21-30/res/browser-joke-2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/Day21-30/res/browser-joke-2.png -------------------------------------------------------------------------------- /Day21-30/res/browser-joke-3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/Day21-30/res/browser-joke-3.png -------------------------------------------------------------------------------- /Day21-30/res/dom-page.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/Day21-30/res/dom-page.png -------------------------------------------------------------------------------- /Day21-30/res/dom-tree.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/Day21-30/res/dom-tree.png -------------------------------------------------------------------------------- /Day21-30/res/字体样式.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/Day21-30/res/字体样式.png -------------------------------------------------------------------------------- /Day21-30/res/字符实体.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/Day21-30/res/字符实体.png -------------------------------------------------------------------------------- /Day21-30/res/客户端对字体文件的支持.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/Day21-30/res/客户端对字体文件的支持.png -------------------------------------------------------------------------------- /Day21-30/res/尺寸单位.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/Day21-30/res/尺寸单位.png -------------------------------------------------------------------------------- /Day21-30/res/属性选择器.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/Day21-30/res/属性选择器.png -------------------------------------------------------------------------------- /Day21-30/res/常用选择器.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/Day21-30/res/常用选择器.png -------------------------------------------------------------------------------- /Day21-30/res/开始标签.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/Day21-30/res/开始标签.png -------------------------------------------------------------------------------- /Day21-30/res/标签属性.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/Day21-30/res/标签属性.png -------------------------------------------------------------------------------- /Day21-30/res/样式属性.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/Day21-30/res/样式属性.png -------------------------------------------------------------------------------- /Day21-30/res/盒子模型.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/Day21-30/res/盒子模型.png -------------------------------------------------------------------------------- /Day21-30/res/相对路径.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/Day21-30/res/相对路径.png -------------------------------------------------------------------------------- /Day21-30/res/经典布局-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/Day21-30/res/经典布局-1.png -------------------------------------------------------------------------------- /Day21-30/res/经典布局-2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/Day21-30/res/经典布局-2.png -------------------------------------------------------------------------------- /Day21-30/res/结束标签.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/Day21-30/res/结束标签.png -------------------------------------------------------------------------------- /Day21-30/res/网站地图.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/Day21-30/res/网站地图.png -------------------------------------------------------------------------------- /Day21-30/res/衬线字体+非衬线字体+等宽字体.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/Day21-30/res/衬线字体+非衬线字体+等宽字体.png -------------------------------------------------------------------------------- /Day21-30/res/选择器语法.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/Day21-30/res/选择器语法.png -------------------------------------------------------------------------------- /Day31-35/code/dayofyear.py: -------------------------------------------------------------------------------- 1 | import sys 2 | import mycal 3 | 4 | 5 | def main(): 6 | if len(sys.argv) != 4: 7 | print('Not enough arguments') 8 | return 9 | year = int(sys.argv[1]) 10 | month = int(sys.argv[2]) 11 | day = int(sys.argv[3]) 12 | total = 0 13 | for m in range(1, month): 14 | total += mycal.get_days(year, m) 15 | total += day 16 | print(f'{year}年{month}月{day}日是{year}年的第{total}天') 17 | 18 | 19 | if __name__ == '__main__': 20 | main() 21 | 22 | -------------------------------------------------------------------------------- /Day31-35/code/guess.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/python3 2 | # coding: utf-8 3 | from random import randint 4 | 5 | 6 | def main(): 7 | answer = randint(1, 100) 8 | while True: 9 | number = int(input('请输入: ')) 10 | if number < answer: 11 | print('大一点') 12 | elif number > answer: 13 | print('小一点') 14 | else: 15 | print('恭喜你猜对了!') 16 | break 17 | 18 | 19 | if __name__ == '__main__': 20 | main() 21 | -------------------------------------------------------------------------------- /Day31-35/code/josephu.py: -------------------------------------------------------------------------------- 1 | def main(): 2 | persons = [True] * 30 3 | counter = 0 4 | index = 0 5 | number = 0 6 | while counter < 15: 7 | if persons[index]: 8 | number += 1 9 | if number == 9: 10 | persons[index] = False 11 | number = 0 12 | counter += 1 13 | index += 1 14 | index %= len(persons) 15 | for person in persons: 16 | print('基' if person else '非', end='') 17 | print() 18 | 19 | 20 | if __name__ == '__main__': 21 | main() 22 | 23 | -------------------------------------------------------------------------------- /Day31-35/res/Ken-Thompson.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/Day31-35/res/Ken-Thompson.png -------------------------------------------------------------------------------- /Day31-35/res/andrew-tanenbaum.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/Day31-35/res/andrew-tanenbaum.png -------------------------------------------------------------------------------- /Day31-35/res/dennis-ritchie.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/Day31-35/res/dennis-ritchie.png -------------------------------------------------------------------------------- /Day31-35/res/file-mode.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/Day31-35/res/file-mode.png -------------------------------------------------------------------------------- /Day31-35/res/history-of-os.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/Day31-35/res/history-of-os.png -------------------------------------------------------------------------------- /Day31-35/res/history-of-unix.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/Day31-35/res/history-of-unix.png -------------------------------------------------------------------------------- /Day31-35/res/ibm-col80-punched-card.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/Day31-35/res/ibm-col80-punched-card.png -------------------------------------------------------------------------------- /Day31-35/res/ken-and-dennis-pdp-11.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/Day31-35/res/ken-and-dennis-pdp-11.png -------------------------------------------------------------------------------- /Day31-35/res/linus-torvalds.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/Day31-35/res/linus-torvalds.png -------------------------------------------------------------------------------- /Day31-35/res/linux-network-config.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/Day31-35/res/linux-network-config.png -------------------------------------------------------------------------------- /Day31-35/res/pdp-7.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/Day31-35/res/pdp-7.png -------------------------------------------------------------------------------- /Day31-35/res/vim-diff.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/Day31-35/res/vim-diff.png -------------------------------------------------------------------------------- /Day31-35/res/vim-macro.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/Day31-35/res/vim-macro.png -------------------------------------------------------------------------------- /Day31-35/res/vim-multi-window.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/Day31-35/res/vim-multi-window.png -------------------------------------------------------------------------------- /Day36-40/code/bank_create_and_init.sql: -------------------------------------------------------------------------------- 1 | drop database if exists bank; 2 | 3 | create database bank default charset utf8; 4 | 5 | use bank; 6 | 7 | create table tb_account 8 | ( 9 | accid char(8) primary key, 10 | accowner varchar(20) not null, 11 | accbalance float not null default 0 12 | ); 13 | 14 | insert into tb_account values (11223344, '王大锤', 1000); 15 | insert into tb_account values (22334455, '李小龙', 1000); -------------------------------------------------------------------------------- /Day36-40/res/redis-aof.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/Day36-40/res/redis-aof.png -------------------------------------------------------------------------------- /Day36-40/res/redis-bind-and-port.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/Day36-40/res/redis-bind-and-port.png -------------------------------------------------------------------------------- /Day36-40/res/redis-data-types.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/Day36-40/res/redis-data-types.png -------------------------------------------------------------------------------- /Day36-40/res/redis-databases.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/Day36-40/res/redis-databases.png -------------------------------------------------------------------------------- /Day36-40/res/redis-hash.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/Day36-40/res/redis-hash.png -------------------------------------------------------------------------------- /Day36-40/res/redis-list.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/Day36-40/res/redis-list.png -------------------------------------------------------------------------------- /Day36-40/res/redis-rdb-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/Day36-40/res/redis-rdb-1.png -------------------------------------------------------------------------------- /Day36-40/res/redis-rdb-3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/Day36-40/res/redis-rdb-3.png -------------------------------------------------------------------------------- /Day36-40/res/redis-replication.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/Day36-40/res/redis-replication.png -------------------------------------------------------------------------------- /Day36-40/res/redis-security.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/Day36-40/res/redis-security.png -------------------------------------------------------------------------------- /Day36-40/res/redis-set.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/Day36-40/res/redis-set.png -------------------------------------------------------------------------------- /Day36-40/res/redis-slow-logs.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/Day36-40/res/redis-slow-logs.png -------------------------------------------------------------------------------- /Day36-40/res/redis-string.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/Day36-40/res/redis-string.png -------------------------------------------------------------------------------- /Day36-40/res/redis-zset.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/Day36-40/res/redis-zset.png -------------------------------------------------------------------------------- /Day41-55/04.表单的应用.md: -------------------------------------------------------------------------------- 1 | ## Django实战(04) - 表单的应用 2 | 3 | 我们继续来完成上一章节中的项目,实现“用户注册”和“用户登录”的功能,并限制只有登录的用户才能为老师投票。Django框架中提供了对表单的封装,而且提供了多种不同的使用方式。 4 | 5 | 首先添加用户模型。 6 | 7 | ```Python 8 | 9 | ``` 10 | 11 | 12 | 13 | 14 | -------------------------------------------------------------------------------- /Day41-55/05.Cookie和会话.md: -------------------------------------------------------------------------------- 1 | ## Django 2实战-05:Cookie和会话 2 | 3 | 4 | -------------------------------------------------------------------------------- /Day41-55/06.中间件的应用.md: -------------------------------------------------------------------------------- 1 | ## Django 2实战06:中间件的应用 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /Day41-55/07.日志和调试.md: -------------------------------------------------------------------------------- 1 | ## Django 2实战-07:日志和调试 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /Day41-55/08.文件上传和富文本编辑.md: -------------------------------------------------------------------------------- 1 | ## Django 2实战08:文件上传和富文本编辑 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /Day41-55/09.文件下载和报表.md: -------------------------------------------------------------------------------- 1 | ## Django 2实战08:文件下载和报表 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /Day41-55/10.RESTful架构和DRF入门.md: -------------------------------------------------------------------------------- 1 | ## Django 2实战10:RESTful架构和DRF入门 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /Day41-55/11.RESTful架构和DRF进阶.md: -------------------------------------------------------------------------------- 1 | ## Django 2实战11:RESTful架构和DRF进阶 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /Day41-55/12.使用缓存.md: -------------------------------------------------------------------------------- 1 | ## Django 2实战12:使用缓存 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /Day41-55/13.短信和邮件.md: -------------------------------------------------------------------------------- 1 | ## Django 2实战13:短信和邮件 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /Day41-55/14.异步任务和定时任务.md: -------------------------------------------------------------------------------- 1 | ## Django 2实战14:异步任务和定时任务 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /Day41-55/15.单元测试和项目上线.md: -------------------------------------------------------------------------------- 1 | ## Django 2实战15:单元测试和项目上线 2 | 3 | 4 | -------------------------------------------------------------------------------- /Day41-55/code/car/car/__init__.py: -------------------------------------------------------------------------------- 1 | import pymysql 2 | 3 | pymysql.install_as_MySQLdb() -------------------------------------------------------------------------------- /Day41-55/code/car/car/wsgi.py: -------------------------------------------------------------------------------- 1 | """ 2 | WSGI config for car project. 3 | 4 | It exposes the WSGI callable as a module-level variable named ``application``. 5 | 6 | For more information on this file, see 7 | https://docs.djangoproject.com/en/2.0/howto/deployment/wsgi/ 8 | """ 9 | 10 | import os 11 | 12 | from django.core.wsgi import get_wsgi_application 13 | 14 | os.environ.setdefault("DJANGO_SETTINGS_MODULE", "car.settings") 15 | 16 | application = get_wsgi_application() 17 | -------------------------------------------------------------------------------- /Day41-55/code/car/manage.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python 2 | import os 3 | import sys 4 | 5 | if __name__ == "__main__": 6 | os.environ.setdefault("DJANGO_SETTINGS_MODULE", "car.settings") 7 | try: 8 | from django.core.management import execute_from_command_line 9 | except ImportError as exc: 10 | raise ImportError( 11 | "Couldn't import Django. Are you sure it's installed and " 12 | "available on your PYTHONPATH environment variable? Did you " 13 | "forget to activate a virtual environment?" 14 | ) from exc 15 | execute_from_command_line(sys.argv) 16 | -------------------------------------------------------------------------------- /Day41-55/code/car/search/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/Day41-55/code/car/search/__init__.py -------------------------------------------------------------------------------- /Day41-55/code/car/search/admin.py: -------------------------------------------------------------------------------- 1 | from django.contrib import admin 2 | 3 | from search.models import CarRecord 4 | 5 | 6 | class CarRecordAdmin(admin.ModelAdmin): 7 | 8 | list_display = ('carno', 'reason', 'date', 'punish', 'isdone') 9 | search_fields = ('carno', ) 10 | 11 | 12 | admin.site.register(CarRecord, CarRecordAdmin) 13 | -------------------------------------------------------------------------------- /Day41-55/code/car/search/apps.py: -------------------------------------------------------------------------------- 1 | from django.apps import AppConfig 2 | 3 | 4 | class SearchConfig(AppConfig): 5 | name = 'search' 6 | -------------------------------------------------------------------------------- /Day41-55/code/car/search/migrations/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/Day41-55/code/car/search/migrations/__init__.py -------------------------------------------------------------------------------- /Day41-55/code/car/search/tests.py: -------------------------------------------------------------------------------- 1 | from django.test import TestCase 2 | 3 | # Create your tests here. 4 | -------------------------------------------------------------------------------- /Day41-55/code/car/static/images/icon-no.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /Day41-55/code/car/static/images/icon-yes.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /Day41-55/code/hellodjango/demo/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/Day41-55/code/hellodjango/demo/__init__.py -------------------------------------------------------------------------------- /Day41-55/code/hellodjango/demo/apps.py: -------------------------------------------------------------------------------- 1 | from django.apps import AppConfig 2 | 3 | 4 | class DemoConfig(AppConfig): 5 | name = '投票' 6 | -------------------------------------------------------------------------------- /Day41-55/code/hellodjango/demo/forms.py: -------------------------------------------------------------------------------- 1 | from django import forms 2 | 3 | from demo.models import User 4 | 5 | 6 | class UserForm(forms.ModelForm): 7 | username = forms.CharField(widget=forms.TextInput, min_length=6, max_length=20) 8 | password = forms.CharField(widget=forms.PasswordInput, min_length=8, max_length=20) 9 | email = forms.CharField(widget=forms.EmailInput, max_length=255) 10 | 11 | class Meta(object): 12 | model = User 13 | fields = ('username', 'password', 'email') 14 | -------------------------------------------------------------------------------- /Day41-55/code/hellodjango/demo/hello.py: -------------------------------------------------------------------------------- 1 | # 序列化 - 把对象写入数据流 - 串行化 / 归档 / 腌咸菜 2 | # 反序列化 - 从数据流中恢复出对象 - 反串行化 / 解归档 3 | # Python有三个支持序列化的模块 4 | # json - JSON / pickle - 二进制 / shelve 5 | import json 6 | import pickle 7 | 8 | 9 | class Student(object): 10 | 11 | def __init__(self, name, age): 12 | self.name = name 13 | self.age = age 14 | 15 | 16 | if __name__ == '__main__': 17 | list1 = [10, 'hello', 99.9, 'goodbye'] 18 | print(json.dumps(list1)) 19 | print(pickle.dumps(list1)) 20 | dict1 = {'name': '骆昊', 'age': 38} 21 | print(json.dumps(dict1)) 22 | print(pickle.dumps(dict1)) 23 | stu = Student('骆昊', 38) 24 | print(pickle.dumps(stu)) 25 | 26 | -------------------------------------------------------------------------------- /Day41-55/code/hellodjango/demo/migrations/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/Day41-55/code/hellodjango/demo/migrations/__init__.py -------------------------------------------------------------------------------- /Day41-55/code/hellodjango/demo/tests.py: -------------------------------------------------------------------------------- 1 | from django.test import TestCase 2 | 3 | # Create your tests here. 4 | -------------------------------------------------------------------------------- /Day41-55/code/hellodjango/hellodjango/__init__.py: -------------------------------------------------------------------------------- 1 | import pymysql 2 | 3 | pymysql.install_as_MySQLdb() 4 | -------------------------------------------------------------------------------- /Day41-55/code/hellodjango/hellodjango/wsgi.py: -------------------------------------------------------------------------------- 1 | """ 2 | WSGI config for hellodjango project. 3 | 4 | It exposes the WSGI callable as a module-level variable named ``application``. 5 | 6 | For more information on this file, see 7 | https://docs.djangoproject.com/en/2.0/howto/deployment/wsgi/ 8 | """ 9 | 10 | import os 11 | 12 | from django.core.wsgi import get_wsgi_application 13 | 14 | os.environ.setdefault("DJANGO_SETTINGS_MODULE", "hellodjango.settings") 15 | 16 | application = get_wsgi_application() 17 | -------------------------------------------------------------------------------- /Day41-55/code/hellodjango/manage.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python 2 | import os 3 | import sys 4 | 5 | if __name__ == "__main__": 6 | os.environ.setdefault("DJANGO_SETTINGS_MODULE", "hellodjango.settings") 7 | try: 8 | from django.core.management import execute_from_command_line 9 | except ImportError as exc: 10 | raise ImportError( 11 | "Couldn't import Django. Are you sure it's installed and " 12 | "available on your PYTHONPATH environment variable? Did you " 13 | "forget to activate a virtual environment?" 14 | ) from exc 15 | execute_from_command_line(sys.argv) 16 | -------------------------------------------------------------------------------- /Day41-55/code/hellodjango/static/images/andrew.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/Day41-55/code/hellodjango/static/images/andrew.png -------------------------------------------------------------------------------- /Day41-55/code/hellodjango/static/images/dennis.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/Day41-55/code/hellodjango/static/images/dennis.png -------------------------------------------------------------------------------- /Day41-55/code/hellodjango/static/images/icon-no.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /Day41-55/code/hellodjango/static/images/icon-yes.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /Day41-55/code/hellodjango/static/images/ken.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/Day41-55/code/hellodjango/static/images/ken.png -------------------------------------------------------------------------------- /Day41-55/code/hellodjango/static/images/linus.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/Day41-55/code/hellodjango/static/images/linus.png -------------------------------------------------------------------------------- /Day41-55/code/hellodjango/templates/demo/subject.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 学科信息 6 | 15 | 16 | 17 |

学科信息

18 |
19 | {% for subject in subjects_list %} 20 |
21 |
{{ subject.name }}
22 |
{{ subject.intro }}
23 |
24 | {% endfor %} 25 | 26 | -------------------------------------------------------------------------------- /Day41-55/code/oa/hrs/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/Day41-55/code/oa/hrs/__init__.py -------------------------------------------------------------------------------- /Day41-55/code/oa/hrs/admin.py: -------------------------------------------------------------------------------- 1 | from django.contrib import admin 2 | 3 | from hrs.models import Dept, Emp 4 | 5 | 6 | class DeptAdmin(admin.ModelAdmin): 7 | 8 | list_display = ('no', 'name', 'location') 9 | ordering = ('no', ) 10 | 11 | 12 | class EmpAdmin(admin.ModelAdmin): 13 | 14 | list_display = ('no', 'name', 'job', 'sal', 'dept') 15 | search_fields = ('name', 'job') 16 | ordering = ('dept', ) 17 | 18 | 19 | admin.site.register(Dept, DeptAdmin) 20 | admin.site.register(Emp, EmpAdmin) 21 | -------------------------------------------------------------------------------- /Day41-55/code/oa/hrs/apps.py: -------------------------------------------------------------------------------- 1 | from django.apps import AppConfig 2 | 3 | 4 | class HrsConfig(AppConfig): 5 | name = 'hrs' 6 | -------------------------------------------------------------------------------- /Day41-55/code/oa/hrs/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Document 6 | 15 | 16 | 17 |
18 | 19 |
20 | 21 | 22 | -------------------------------------------------------------------------------- /Day41-55/code/oa/hrs/migrations/0003_auto_20180524_1646.py: -------------------------------------------------------------------------------- 1 | # Generated by Django 2.0.5 on 2018-05-24 08:46 2 | 3 | from django.db import migrations, models 4 | import django.db.models.deletion 5 | 6 | 7 | class Migration(migrations.Migration): 8 | 9 | dependencies = [ 10 | ('hrs', '0002_auto_20180523_0923'), 11 | ] 12 | 13 | operations = [ 14 | migrations.AlterField( 15 | model_name='emp', 16 | name='mgr', 17 | field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, to='hrs.Emp'), 18 | ), 19 | ] 20 | -------------------------------------------------------------------------------- /Day41-55/code/oa/hrs/migrations/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/Day41-55/code/oa/hrs/migrations/__init__.py -------------------------------------------------------------------------------- /Day41-55/code/oa/hrs/tests.py: -------------------------------------------------------------------------------- 1 | from django.test import TestCase 2 | 3 | # Create your tests here. 4 | -------------------------------------------------------------------------------- /Day41-55/code/oa/hrs/urls.py: -------------------------------------------------------------------------------- 1 | from django.urls import path 2 | 3 | from hrs import views 4 | 5 | urlpatterns = [ 6 | path('depts', views.depts, name='depts'), 7 | # url('depts/emps/(?P[0-9]+)', views.emps, name='empsindept'), 8 | path('depts/emps/', views.emps, name='empsindept'), 9 | path('deldept/', views.del_dept, name='ddel') 10 | ] 11 | -------------------------------------------------------------------------------- /Day41-55/code/oa/manage.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python 2 | import os 3 | import sys 4 | 5 | if __name__ == "__main__": 6 | os.environ.setdefault("DJANGO_SETTINGS_MODULE", "oa.settings") 7 | try: 8 | from django.core.management import execute_from_command_line 9 | except ImportError as exc: 10 | raise ImportError( 11 | "Couldn't import Django. Are you sure it's installed and " 12 | "available on your PYTHONPATH environment variable? Did you " 13 | "forget to activate a virtual environment?" 14 | ) from exc 15 | execute_from_command_line(sys.argv) 16 | -------------------------------------------------------------------------------- /Day41-55/code/oa/oa/__init__.py: -------------------------------------------------------------------------------- 1 | import pymysql 2 | 3 | pymysql.install_as_MySQLdb() 4 | -------------------------------------------------------------------------------- /Day41-55/code/oa/oa/wsgi.py: -------------------------------------------------------------------------------- 1 | """ 2 | WSGI config for oa project. 3 | 4 | It exposes the WSGI callable as a module-level variable named ``application``. 5 | 6 | For more information on this file, see 7 | https://docs.djangoproject.com/en/2.0/howto/deployment/wsgi/ 8 | """ 9 | 10 | import os 11 | 12 | from django.core.wsgi import get_wsgi_application 13 | 14 | os.environ.setdefault("DJANGO_SETTINGS_MODULE", "oa.settings") 15 | 16 | application = get_wsgi_application() 17 | -------------------------------------------------------------------------------- /Day41-55/code/oa/requirements.txt: -------------------------------------------------------------------------------- 1 | asn1crypto==0.24.0 2 | cffi==1.11.5 3 | cryptography==2.3 4 | Django>=2.1.6 5 | idna==2.7 6 | pycparser==2.18 7 | PyMySQL==0.9.2 8 | pytz==2018.5 9 | six==1.11.0 10 | -------------------------------------------------------------------------------- /Day41-55/code/oa/static/images/mm.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/Day41-55/code/oa/static/images/mm.jpg -------------------------------------------------------------------------------- /Day41-55/code/oa/templates/index.html: -------------------------------------------------------------------------------- 1 | 2 | {% load staticfiles %} 3 | 4 | 5 | 6 | 首页 7 | 8 | 9 |

{{ greeting }}

10 |
11 | 12 | 13 | -------------------------------------------------------------------------------- /Day41-55/code/shop/cart/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/Day41-55/code/shop/cart/__init__.py -------------------------------------------------------------------------------- /Day41-55/code/shop/cart/admin.py: -------------------------------------------------------------------------------- 1 | from django.contrib import admin 2 | 3 | from cart.models import Goods 4 | 5 | 6 | class GoodsAdmin(admin.ModelAdmin): 7 | 8 | list_display = ('id', 'name', 'price', 'image') 9 | search_fields = ('name', ) 10 | 11 | 12 | admin.site.register(Goods, GoodsAdmin) 13 | -------------------------------------------------------------------------------- /Day41-55/code/shop/cart/apps.py: -------------------------------------------------------------------------------- 1 | from django.apps import AppConfig 2 | 3 | 4 | class CartConfig(AppConfig): 5 | name = 'cart' 6 | -------------------------------------------------------------------------------- /Day41-55/code/shop/cart/migrations/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/Day41-55/code/shop/cart/migrations/__init__.py -------------------------------------------------------------------------------- /Day41-55/code/shop/cart/models.py: -------------------------------------------------------------------------------- 1 | from django.db import models 2 | 3 | 4 | class Goods(models.Model): 5 | """商品模型类""" 6 | 7 | id = models.AutoField(primary_key=True, db_column='gid') 8 | name = models.CharField(max_length=50, db_column='gname') 9 | price = models.DecimalField(max_digits=10, decimal_places=2, db_column='gprice') 10 | image = models.CharField(max_length=255, db_column='gimage') 11 | 12 | class Meta: 13 | 14 | db_table = 'tb_goods' 15 | ordering = ('id', ) 16 | -------------------------------------------------------------------------------- /Day41-55/code/shop/cart/tests.py: -------------------------------------------------------------------------------- 1 | from django.test import TestCase 2 | 3 | # Create your tests here. 4 | -------------------------------------------------------------------------------- /Day41-55/code/shop/manage.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python 2 | import os 3 | import sys 4 | 5 | if __name__ == "__main__": 6 | os.environ.setdefault("DJANGO_SETTINGS_MODULE", "shop.settings") 7 | try: 8 | from django.core.management import execute_from_command_line 9 | except ImportError as exc: 10 | raise ImportError( 11 | "Couldn't import Django. Are you sure it's installed and " 12 | "available on your PYTHONPATH environment variable? Did you " 13 | "forget to activate a virtual environment?" 14 | ) from exc 15 | execute_from_command_line(sys.argv) 16 | -------------------------------------------------------------------------------- /Day41-55/code/shop/shop/__init__.py: -------------------------------------------------------------------------------- 1 | import pymysql 2 | 3 | pymysql.install_as_MySQLdb() 4 | -------------------------------------------------------------------------------- /Day41-55/code/shop/shop/wsgi.py: -------------------------------------------------------------------------------- 1 | """ 2 | WSGI config for shop project. 3 | 4 | It exposes the WSGI callable as a module-level variable named ``application``. 5 | 6 | For more information on this file, see 7 | https://docs.djangoproject.com/en/2.0/howto/deployment/wsgi/ 8 | """ 9 | 10 | import os 11 | 12 | from django.core.wsgi import get_wsgi_application 13 | 14 | os.environ.setdefault("DJANGO_SETTINGS_MODULE", "shop.settings") 15 | 16 | application = get_wsgi_application() 17 | -------------------------------------------------------------------------------- /Day41-55/code/shop/static/images/dolbee.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/Day41-55/code/shop/static/images/dolbee.jpg -------------------------------------------------------------------------------- /Day41-55/code/shop/static/images/lay.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/Day41-55/code/shop/static/images/lay.jpg -------------------------------------------------------------------------------- /Day41-55/code/shop/static/images/noodle.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/Day41-55/code/shop/static/images/noodle.jpg -------------------------------------------------------------------------------- /Day41-55/code/shop/static/images/oil.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/Day41-55/code/shop/static/images/oil.jpg -------------------------------------------------------------------------------- /Day41-55/code/shop/static/images/wang.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/Day41-55/code/shop/static/images/wang.jpg -------------------------------------------------------------------------------- /Day41-55/code/shop/static/images/wine.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/Day41-55/code/shop/static/images/wine.jpg -------------------------------------------------------------------------------- /Day41-55/code/shop_origin/cart/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/Day41-55/code/shop_origin/cart/__init__.py -------------------------------------------------------------------------------- /Day41-55/code/shop_origin/cart/admin.py: -------------------------------------------------------------------------------- 1 | from django.contrib import admin 2 | 3 | from cart.models import Goods 4 | 5 | 6 | class GoodsAdmin(admin.ModelAdmin): 7 | 8 | list_display = ('id', 'name', 'price', 'image') 9 | 10 | 11 | admin.site.register(Goods, GoodsAdmin) 12 | -------------------------------------------------------------------------------- /Day41-55/code/shop_origin/cart/apps.py: -------------------------------------------------------------------------------- 1 | from django.apps import AppConfig 2 | 3 | 4 | class CartConfig(AppConfig): 5 | name = 'cart' 6 | -------------------------------------------------------------------------------- /Day41-55/code/shop_origin/cart/migrations/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/Day41-55/code/shop_origin/cart/migrations/__init__.py -------------------------------------------------------------------------------- /Day41-55/code/shop_origin/cart/models.py: -------------------------------------------------------------------------------- 1 | from django.db import models 2 | 3 | 4 | class Goods(models.Model): 5 | 6 | id = models.AutoField(primary_key=True, db_column='gid') 7 | name = models.CharField(max_length=50, db_column='gname') 8 | price = models.DecimalField(max_digits=10, decimal_places=2, db_column='gprice') 9 | image = models.CharField(max_length=255, db_column='gimage') 10 | 11 | class Meta: 12 | db_table = 'tb_goods' 13 | ordering = ('id',) 14 | -------------------------------------------------------------------------------- /Day41-55/code/shop_origin/cart/tests.py: -------------------------------------------------------------------------------- 1 | from django.test import TestCase 2 | 3 | # Create your tests here. 4 | -------------------------------------------------------------------------------- /Day41-55/code/shop_origin/cart/views.py: -------------------------------------------------------------------------------- 1 | from django.shortcuts import render 2 | 3 | from cart.models import Goods 4 | 5 | 6 | def index(request): 7 | goods_list = list(Goods.objects.all()) 8 | return render(request, 'goods.html', {'goods_list': goods_list}) 9 | 10 | 11 | def show_cart(request): 12 | return render(request, 'cart.html') 13 | 14 | 15 | def add_to_cart(request, no): 16 | pass 17 | -------------------------------------------------------------------------------- /Day41-55/code/shop_origin/manage.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python 2 | import os 3 | import sys 4 | 5 | if __name__ == "__main__": 6 | os.environ.setdefault("DJANGO_SETTINGS_MODULE", "shop.settings") 7 | try: 8 | from django.core.management import execute_from_command_line 9 | except ImportError as exc: 10 | raise ImportError( 11 | "Couldn't import Django. Are you sure it's installed and " 12 | "available on your PYTHONPATH environment variable? Did you " 13 | "forget to activate a virtual environment?" 14 | ) from exc 15 | execute_from_command_line(sys.argv) 16 | -------------------------------------------------------------------------------- /Day41-55/code/shop_origin/shop/__init__.py: -------------------------------------------------------------------------------- 1 | import pymysql 2 | 3 | pymysql.install_as_MySQLdb() -------------------------------------------------------------------------------- /Day41-55/code/shop_origin/shop/wsgi.py: -------------------------------------------------------------------------------- 1 | """ 2 | WSGI config for shop project. 3 | 4 | It exposes the WSGI callable as a module-level variable named ``application``. 5 | 6 | For more information on this file, see 7 | https://docs.djangoproject.com/en/2.0/howto/deployment/wsgi/ 8 | """ 9 | 10 | import os 11 | 12 | from django.core.wsgi import get_wsgi_application 13 | 14 | os.environ.setdefault("DJANGO_SETTINGS_MODULE", "shop.settings") 15 | 16 | application = get_wsgi_application() 17 | -------------------------------------------------------------------------------- /Day41-55/code/shop_origin/shop_create_sql.sql: -------------------------------------------------------------------------------- 1 | insert into tb_goods values 2 | (default, '乐事(Lay’s)无限薯片', 8.2, 'images/lay.jpg'), 3 | (default, '旺旺 仙贝 加量装 540g', 18.5, 'images/wang.jpg'), 4 | (default, '多儿比(Dolbee)黄桃水果罐头', 6.8, 'images/dolbee.jpg'), 5 | (default, '王致和 精制料酒 500ml', 7.9, 'images/wine.jpg'), 6 | (default, '陈克明 面条 鸡蛋龙须挂面', 1.0, 'images/noodle.jpg'), 7 | (default, '鲁花 菜籽油 4L', 69.9, 'images/oil.jpg'); -------------------------------------------------------------------------------- /Day41-55/code/shop_origin/static/images/dolbee.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/Day41-55/code/shop_origin/static/images/dolbee.jpg -------------------------------------------------------------------------------- /Day41-55/code/shop_origin/static/images/lay.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/Day41-55/code/shop_origin/static/images/lay.jpg -------------------------------------------------------------------------------- /Day41-55/code/shop_origin/static/images/noodle.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/Day41-55/code/shop_origin/static/images/noodle.jpg -------------------------------------------------------------------------------- /Day41-55/code/shop_origin/static/images/oil.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/Day41-55/code/shop_origin/static/images/oil.jpg -------------------------------------------------------------------------------- /Day41-55/code/shop_origin/static/images/wang.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/Day41-55/code/shop_origin/static/images/wang.jpg -------------------------------------------------------------------------------- /Day41-55/code/shop_origin/static/images/wine.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/Day41-55/code/shop_origin/static/images/wine.jpg -------------------------------------------------------------------------------- /Day41-55/res/Django-Flowchart.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/Day41-55/res/Django-Flowchart.png -------------------------------------------------------------------------------- /Day41-55/res/Django-MTV.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/Day41-55/res/Django-MTV.png -------------------------------------------------------------------------------- /Day41-55/res/admin-login.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/Day41-55/res/admin-login.png -------------------------------------------------------------------------------- /Day41-55/res/admin-model-create.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/Day41-55/res/admin-model-create.png -------------------------------------------------------------------------------- /Day41-55/res/admin-model-delete-and-update.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/Day41-55/res/admin-model-delete-and-update.png -------------------------------------------------------------------------------- /Day41-55/res/admin-model-depts.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/Day41-55/res/admin-model-depts.png -------------------------------------------------------------------------------- /Day41-55/res/admin-model-emps-modified.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/Day41-55/res/admin-model-emps-modified.png -------------------------------------------------------------------------------- /Day41-55/res/admin-model-emps.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/Day41-55/res/admin-model-emps.png -------------------------------------------------------------------------------- /Day41-55/res/admin-model-read.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/Day41-55/res/admin-model-read.png -------------------------------------------------------------------------------- /Day41-55/res/admin-model.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/Day41-55/res/admin-model.png -------------------------------------------------------------------------------- /Day41-55/res/admin-welcome.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/Day41-55/res/admin-welcome.png -------------------------------------------------------------------------------- /Day41-55/res/django-index-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/Day41-55/res/django-index-1.png -------------------------------------------------------------------------------- /Day41-55/res/django-index-2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/Day41-55/res/django-index-2.png -------------------------------------------------------------------------------- /Day41-55/res/er-graph.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/Day41-55/res/er-graph.png -------------------------------------------------------------------------------- /Day41-55/res/http-request.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/Day41-55/res/http-request.png -------------------------------------------------------------------------------- /Day41-55/res/http-response.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/Day41-55/res/http-response.png -------------------------------------------------------------------------------- /Day41-55/res/mvc.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/Day41-55/res/mvc.png -------------------------------------------------------------------------------- /Day41-55/res/runserver01.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/Day41-55/res/runserver01.png -------------------------------------------------------------------------------- /Day41-55/res/runserver02.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/Day41-55/res/runserver02.png -------------------------------------------------------------------------------- /Day41-55/res/runserver03.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/Day41-55/res/runserver03.png -------------------------------------------------------------------------------- /Day41-55/res/show-subjects.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/Day41-55/res/show-subjects.png -------------------------------------------------------------------------------- /Day41-55/res/show-teachers.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/Day41-55/res/show-teachers.png -------------------------------------------------------------------------------- /Day41-55/res/web-application.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/Day41-55/res/web-application.png -------------------------------------------------------------------------------- /Day56-60/01.Flask入门.md: -------------------------------------------------------------------------------- 1 | ## Flask入门 2 | 3 | -------------------------------------------------------------------------------- /Day56-60/02.模板的使用.md: -------------------------------------------------------------------------------- 1 | ## 模板的使用 2 | 3 | -------------------------------------------------------------------------------- /Day56-60/03.表单的处理.md: -------------------------------------------------------------------------------- 1 | ## 表单的处理 2 | 3 | -------------------------------------------------------------------------------- /Day56-60/04.数据库操作.md: -------------------------------------------------------------------------------- 1 | ## 数据库操作 2 | 3 | -------------------------------------------------------------------------------- /Day56-60/05.项目实战.md: -------------------------------------------------------------------------------- 1 | ## 项目实战 2 | 3 | -------------------------------------------------------------------------------- /Day61-65/.gitkeep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/Day61-65/.gitkeep -------------------------------------------------------------------------------- /Day61-65/05.项目实战.md: -------------------------------------------------------------------------------- 1 | ## 项目实战 2 | 3 | -------------------------------------------------------------------------------- /Day61-65/code/.gitkeep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/Day61-65/code/.gitkeep -------------------------------------------------------------------------------- /Day61-65/code/hello-tornado/requirements.txt: -------------------------------------------------------------------------------- 1 | aiohttp==3.5.4 2 | aiomysql==0.0.20 3 | asn1crypto==0.24.0 4 | async-timeout==3.0.1 5 | attrs==19.1.0 6 | certifi==2019.3.9 7 | cffi==1.12.2 8 | chardet==3.0.4 9 | cryptography==2.6.1 10 | idna==2.8 11 | multidict==4.5.2 12 | pycparser==2.19 13 | PyMySQL==0.9.2 14 | requests==2.21.0 15 | six==1.12.0 16 | tornado==5.1.1 17 | urllib3==1.24.1 18 | yarl==1.3.0 19 | -------------------------------------------------------------------------------- /Day61-65/code/hello-tornado/templates/news.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 新闻列表 6 | 7 | 8 |

新闻列表

9 |
10 | {% for news in newslist %} 11 |
12 | 13 |

{{news['title']}}

14 |
15 | {% end %} 16 | 17 | -------------------------------------------------------------------------------- /Day61-65/code/project_of_tornado/assets/fonts/FontAwesome.otf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/Day61-65/code/project_of_tornado/assets/fonts/FontAwesome.otf -------------------------------------------------------------------------------- /Day61-65/code/project_of_tornado/assets/fonts/fontawesome-webfont.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/Day61-65/code/project_of_tornado/assets/fonts/fontawesome-webfont.eot -------------------------------------------------------------------------------- /Day61-65/code/project_of_tornado/assets/fonts/fontawesome-webfont.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/Day61-65/code/project_of_tornado/assets/fonts/fontawesome-webfont.ttf -------------------------------------------------------------------------------- /Day61-65/code/project_of_tornado/assets/fonts/fontawesome-webfont.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/Day61-65/code/project_of_tornado/assets/fonts/fontawesome-webfont.woff -------------------------------------------------------------------------------- /Day61-65/code/project_of_tornado/assets/fonts/fontawesome-webfont.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/Day61-65/code/project_of_tornado/assets/fonts/fontawesome-webfont.woff2 -------------------------------------------------------------------------------- /Day61-65/code/project_of_tornado/assets/i/app-icon72x72@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/Day61-65/code/project_of_tornado/assets/i/app-icon72x72@2x.png -------------------------------------------------------------------------------- /Day61-65/code/project_of_tornado/assets/i/examples/admin-chrome.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/Day61-65/code/project_of_tornado/assets/i/examples/admin-chrome.png -------------------------------------------------------------------------------- /Day61-65/code/project_of_tornado/assets/i/examples/admin-firefox.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/Day61-65/code/project_of_tornado/assets/i/examples/admin-firefox.png -------------------------------------------------------------------------------- /Day61-65/code/project_of_tornado/assets/i/examples/admin-ie.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/Day61-65/code/project_of_tornado/assets/i/examples/admin-ie.png -------------------------------------------------------------------------------- /Day61-65/code/project_of_tornado/assets/i/examples/admin-opera.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/Day61-65/code/project_of_tornado/assets/i/examples/admin-opera.png -------------------------------------------------------------------------------- /Day61-65/code/project_of_tornado/assets/i/examples/admin-safari.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/Day61-65/code/project_of_tornado/assets/i/examples/admin-safari.png -------------------------------------------------------------------------------- /Day61-65/code/project_of_tornado/assets/i/examples/adminPage.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/Day61-65/code/project_of_tornado/assets/i/examples/adminPage.png -------------------------------------------------------------------------------- /Day61-65/code/project_of_tornado/assets/i/examples/blogPage.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/Day61-65/code/project_of_tornado/assets/i/examples/blogPage.png -------------------------------------------------------------------------------- /Day61-65/code/project_of_tornado/assets/i/examples/landing.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/Day61-65/code/project_of_tornado/assets/i/examples/landing.png -------------------------------------------------------------------------------- /Day61-65/code/project_of_tornado/assets/i/examples/landingPage.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/Day61-65/code/project_of_tornado/assets/i/examples/landingPage.png -------------------------------------------------------------------------------- /Day61-65/code/project_of_tornado/assets/i/examples/loginPage.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/Day61-65/code/project_of_tornado/assets/i/examples/loginPage.png -------------------------------------------------------------------------------- /Day61-65/code/project_of_tornado/assets/i/examples/sidebarPage.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/Day61-65/code/project_of_tornado/assets/i/examples/sidebarPage.png -------------------------------------------------------------------------------- /Day61-65/code/project_of_tornado/assets/i/favicon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/Day61-65/code/project_of_tornado/assets/i/favicon.png -------------------------------------------------------------------------------- /Day61-65/code/project_of_tornado/assets/i/startup-640x1096.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/Day61-65/code/project_of_tornado/assets/i/startup-640x1096.png -------------------------------------------------------------------------------- /Day61-65/code/project_of_tornado/assets/img/a5.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/Day61-65/code/project_of_tornado/assets/img/a5.png -------------------------------------------------------------------------------- /Day61-65/code/project_of_tornado/assets/img/k.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/Day61-65/code/project_of_tornado/assets/img/k.jpg -------------------------------------------------------------------------------- /Day61-65/code/project_of_tornado/assets/img/logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/Day61-65/code/project_of_tornado/assets/img/logo.png -------------------------------------------------------------------------------- /Day61-65/code/project_of_tornado/assets/img/logoa.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/Day61-65/code/project_of_tornado/assets/img/logoa.png -------------------------------------------------------------------------------- /Day61-65/code/project_of_tornado/assets/img/logob.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/Day61-65/code/project_of_tornado/assets/img/logob.png -------------------------------------------------------------------------------- /Day61-65/code/project_of_tornado/assets/img/user01.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/Day61-65/code/project_of_tornado/assets/img/user01.png -------------------------------------------------------------------------------- /Day61-65/code/project_of_tornado/assets/img/user02.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/Day61-65/code/project_of_tornado/assets/img/user02.png -------------------------------------------------------------------------------- /Day61-65/code/project_of_tornado/assets/img/user03.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/Day61-65/code/project_of_tornado/assets/img/user03.png -------------------------------------------------------------------------------- /Day61-65/code/project_of_tornado/assets/img/user04.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/Day61-65/code/project_of_tornado/assets/img/user04.png -------------------------------------------------------------------------------- /Day61-65/code/project_of_tornado/assets/img/user05.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/Day61-65/code/project_of_tornado/assets/img/user05.png -------------------------------------------------------------------------------- /Day61-65/code/project_of_tornado/assets/img/user06.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/Day61-65/code/project_of_tornado/assets/img/user06.png -------------------------------------------------------------------------------- /Day61-65/code/project_of_tornado/assets/img/user07.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/Day61-65/code/project_of_tornado/assets/img/user07.png -------------------------------------------------------------------------------- /Day61-65/code/project_of_tornado/requirements.txt: -------------------------------------------------------------------------------- 1 | aiomysql==0.0.20 2 | asn1crypto==0.24.0 3 | cffi==1.12.2 4 | cryptography==2.6.1 5 | pycparser==2.19 6 | PyMySQL==0.9.2 7 | six==1.12.0 8 | tornado==5.1.1 9 | -------------------------------------------------------------------------------- /Day61-65/code/project_of_tornado/service/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/Day61-65/code/project_of_tornado/service/__init__.py -------------------------------------------------------------------------------- /Day61-65/code/project_of_tornado/service/handlers/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/Day61-65/code/project_of_tornado/service/handlers/__init__.py -------------------------------------------------------------------------------- /Day61-65/code/project_of_tornado/service/handlers/handlers_for_nav.py: -------------------------------------------------------------------------------- 1 | import tornado 2 | 3 | 4 | class IndexHandler(tornado.web.RequestHandler): 5 | 6 | async def get(self, *args, **kwargs): 7 | return await self.render('index.html') 8 | -------------------------------------------------------------------------------- /Day61-65/code/project_of_tornado/service/handlers/handlers_for_tables.py: -------------------------------------------------------------------------------- 1 | import json 2 | 3 | import aiomysql 4 | import tornado 5 | 6 | 7 | class EmpHandler(tornado.web.RequestHandler): 8 | 9 | async def get(self, *args, **kwargs): 10 | async with self.settings['mysql'].cursor(aiomysql.DictCursor) as cursor: 11 | await cursor.execute("select eno as no, ename as name, job, sal, intro from tb_emp") 12 | emps = list(await cursor.fetchall()) 13 | self.finish(json.dumps(emps)) 14 | -------------------------------------------------------------------------------- /Day61-65/res/.gitkeep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/Day61-65/res/.gitkeep -------------------------------------------------------------------------------- /Day61-65/res/run-hello-world-app.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/Day61-65/res/run-hello-world-app.png -------------------------------------------------------------------------------- /Day61-65/res/websocket.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/Day61-65/res/websocket.png -------------------------------------------------------------------------------- /Day61-65/res/ws_wss.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/Day61-65/res/ws_wss.png -------------------------------------------------------------------------------- /Day66-75/06.表单交互和验证码处理.md: -------------------------------------------------------------------------------- 1 | ## 表单交互和验证码处理 2 | 3 | ### 提交表单 4 | 5 | #### 手动提交 6 | 7 | 8 | 9 | #### 自动提交 10 | 11 | 12 | 13 | ### 验证码处理 14 | 15 | #### 加载验证码 16 | 17 | 18 | 19 | #### 光学字符识别 20 | 21 | 光学字符识别(OCR)是从图像中抽取文本的工具,可以应用于公安、电信、物流、金融等诸多行业,例如识别车牌,身份证扫描识别、名片信息提取等。在爬虫开发中,如果遭遇了有文字验证码的表单,就可以利用OCR来进行验证码处理。Tesseract-OCR引擎最初是由惠普公司开发的光学字符识别系统,目前发布在Github上,由Google赞助开发。 22 | 23 | ![](./res/tesseract.gif) 24 | 25 | #### 改善OCR 26 | 27 | 28 | 29 | #### 处理更复杂的验证码 30 | 31 | 很多网站为了分别出提供验证码的是人还是机器使用了更为复杂的验证码,例如拼图验证码、点触验证码、九宫格验证码等。关于这方面的知识,在崔庆才同学的[《Python 3网络爬虫开发实战》](http://www.ituring.com.cn/book/2003)有较为详细的讲解,有兴趣的可以购买阅读。 32 | 33 | #### 验证码处理服务 34 | 35 | -------------------------------------------------------------------------------- /Day66-75/10.爬虫项目实战.md: -------------------------------------------------------------------------------- 1 | ## 爬虫项目实战 2 | -------------------------------------------------------------------------------- /Day66-75/code/asyncio01.py: -------------------------------------------------------------------------------- 1 | import asyncio 2 | 3 | 4 | @asyncio.coroutine 5 | def countdown(name, num): 6 | while num > 0: 7 | print(f'Countdown[{name}]: {num}') 8 | yield from asyncio.sleep(1) 9 | num -= 1 10 | 11 | 12 | def main(): 13 | loop = asyncio.get_event_loop() 14 | tasks = [ 15 | countdown("A", 10), countdown("B", 5), 16 | ] 17 | loop.run_until_complete(asyncio.wait(tasks)) 18 | loop.close() 19 | 20 | 21 | if __name__ == '__main__': 22 | main() 23 | -------------------------------------------------------------------------------- /Day66-75/code/coroutine01.py: -------------------------------------------------------------------------------- 1 | from time import sleep 2 | 3 | 4 | def countdown_gen(n, consumer): 5 | consumer.send(None) 6 | while n > 0: 7 | consumer.send(n) 8 | n -= 1 9 | consumer.send(None) 10 | 11 | 12 | def countdown_con(): 13 | while True: 14 | n = yield 15 | if n: 16 | print(f'Countdown {n}') 17 | sleep(1) 18 | else: 19 | print('Countdown Over!') 20 | 21 | 22 | def main(): 23 | countdown_gen(5, countdown_con()) 24 | 25 | 26 | if __name__ == '__main__': 27 | main() 28 | -------------------------------------------------------------------------------- /Day66-75/code/douban/douban/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/Day66-75/code/douban/douban/__init__.py -------------------------------------------------------------------------------- /Day66-75/code/douban/douban/items.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | 3 | # Define here the models for your scraped items 4 | # 5 | # See documentation in: 6 | # https://doc.scrapy.org/en/latest/topics/items.html 7 | 8 | import scrapy 9 | 10 | 11 | class MovieItem(scrapy.Item): 12 | 13 | title = scrapy.Field() 14 | score = scrapy.Field() 15 | motto = scrapy.Field() 16 | -------------------------------------------------------------------------------- /Day66-75/code/douban/douban/pipelines.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | 3 | # Define your item pipelines here 4 | # 5 | # Don't forget to add your pipeline to the ITEM_PIPELINES setting 6 | # See: https://doc.scrapy.org/en/latest/topics/item-pipeline.html 7 | 8 | 9 | class DoubanPipeline(object): 10 | 11 | # def __init__(self, server, port): 12 | # pass 13 | 14 | # @classmethod 15 | # def from_crawler(cls, crawler): 16 | # return cls(crawler.settings['MONGO_SERVER'], 17 | # crawler.settings['MONGO_PORT']) 18 | 19 | def process_item(self, item, spider): 20 | return item 21 | -------------------------------------------------------------------------------- /Day66-75/code/douban/douban/spiders/__init__.py: -------------------------------------------------------------------------------- 1 | # This package will contain the spiders of your Scrapy project 2 | # 3 | # Please refer to the documentation for information on how to create and manage 4 | # your spiders. 5 | -------------------------------------------------------------------------------- /Day66-75/code/douban/result.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/Day66-75/code/douban/result.json -------------------------------------------------------------------------------- /Day66-75/code/douban/scrapy.cfg: -------------------------------------------------------------------------------- 1 | # Automatically created by: scrapy startproject 2 | # 3 | # For more information about the [deploy] section see: 4 | # https://scrapyd.readthedocs.io/en/latest/deploy.html 5 | 6 | [settings] 7 | default = douban.settings 8 | 9 | [deploy] 10 | #url = http://localhost:6800/ 11 | project = douban 12 | -------------------------------------------------------------------------------- /Day66-75/code/example09.py: -------------------------------------------------------------------------------- 1 | import robobrowser 2 | 3 | 4 | def main(): 5 | b = robobrowser.RoboBrowser(parser='lxml') 6 | b.open('https://github.com/login') 7 | f = b.get_form(action='/session') 8 | f['login'].value = 'jackfrued@gmail.com' 9 | f['password'].value = 'yourpassword' 10 | b.submit_form(f) 11 | for a_tag in b.select('a[href]'): 12 | print(a_tag.attrs['href']) 13 | 14 | 15 | if __name__ == '__main__': 16 | main() 17 | -------------------------------------------------------------------------------- /Day66-75/code/example10.py: -------------------------------------------------------------------------------- 1 | import robobrowser 2 | 3 | 4 | def main(): 5 | b = robobrowser.RoboBrowser(parser='lxml') 6 | b.open('https://v.taobao.com/v/content/live?catetype=704&from=taonvlang') 7 | for img_tag in b.select('img[src]'): 8 | print(img_tag.attrs['src']) 9 | 10 | 11 | if __name__ == '__main__': 12 | main() 13 | -------------------------------------------------------------------------------- /Day66-75/code/example10a.py: -------------------------------------------------------------------------------- 1 | import requests 2 | 3 | from bs4 import BeautifulSoup 4 | 5 | 6 | def main(): 7 | resp = requests.get('https://v.taobao.com/v/content/live?catetype=704&from=taonvlang') 8 | soup = BeautifulSoup(resp.text, 'lxml') 9 | for img_tag in soup.select('img[src]'): 10 | print(img_tag.attrs['src']) 11 | 12 | 13 | if __name__ == '__main__': 14 | main() 15 | -------------------------------------------------------------------------------- /Day66-75/code/example11.py: -------------------------------------------------------------------------------- 1 | from bs4 import BeautifulSoup 2 | from selenium import webdriver 3 | from selenium.webdriver.common.keys import Keys 4 | 5 | 6 | def main(): 7 | driver = webdriver.Chrome() 8 | driver.get('https://v.taobao.com/v/content/live?catetype=704&from=taonvlang') 9 | elem = driver.find_element_by_css_selector('input[placeholder=输入关键词搜索]') 10 | elem.send_keys('运动') 11 | elem.send_keys(Keys.ENTER) 12 | soup = BeautifulSoup(driver.page_source, 'lxml') 13 | for img_tag in soup.body.select('img[src]'): 14 | print(img_tag.attrs['src']) 15 | 16 | 17 | if __name__ == '__main__': 18 | main() 19 | -------------------------------------------------------------------------------- /Day66-75/code/example11a.py: -------------------------------------------------------------------------------- 1 | from bs4 import BeautifulSoup 2 | from selenium import webdriver 3 | from selenium.webdriver.common.keys import Keys 4 | 5 | 6 | def main(): 7 | driver = webdriver.Chrome() 8 | driver.get('https://v.taobao.com/v/content/live?catetype=704&from=taonvlang') 9 | soup = BeautifulSoup(driver.page_source, 'lxml') 10 | for img_tag in soup.body.select('img[src]'): 11 | print(img_tag.attrs['src']) 12 | 13 | 14 | if __name__ == '__main__': 15 | main() 16 | -------------------------------------------------------------------------------- /Day66-75/code/generator01.py: -------------------------------------------------------------------------------- 1 | def fib(): 2 | a, b = 0, 1 3 | while True: 4 | a, b = b, a + b 5 | yield a 6 | 7 | 8 | def even(gen): 9 | for val in gen: 10 | if val % 2 == 0: 11 | yield val 12 | 13 | 14 | def main(): 15 | gen = even(fib()) 16 | for _ in range(10): 17 | print(next(gen)) 18 | 19 | 20 | if __name__ == '__main__': 21 | main() 22 | -------------------------------------------------------------------------------- /Day66-75/code/generator02.py: -------------------------------------------------------------------------------- 1 | from time import sleep 2 | 3 | 4 | def countdown(n): 5 | while n > 0: 6 | yield n 7 | n -= 1 8 | 9 | 10 | def main(): 11 | for num in countdown(5): 12 | print(f'Countdown: {num}') 13 | sleep(1) 14 | print('Countdown Over!') 15 | 16 | 17 | if __name__ == '__main__': 18 | main() 19 | -------------------------------------------------------------------------------- /Day66-75/code/guido.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/Day66-75/code/guido.jpg -------------------------------------------------------------------------------- /Day66-75/code/image360/image360/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/Day66-75/code/image360/image360/__init__.py -------------------------------------------------------------------------------- /Day66-75/code/image360/image360/items.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | 3 | # Define here the models for your scraped items 4 | # 5 | # See documentation in: 6 | # https://doc.scrapy.org/en/latest/topics/items.html 7 | 8 | import scrapy 9 | 10 | 11 | class GoodsItem(scrapy.Item): 12 | 13 | price = scrapy.Field() 14 | deal = scrapy.Field() 15 | title = scrapy.Field() 16 | 17 | 18 | class BeautyItem(scrapy.Item): 19 | 20 | title = scrapy.Field() 21 | tag = scrapy.Field() 22 | width = scrapy.Field() 23 | height = scrapy.Field() 24 | url = scrapy.Field() 25 | -------------------------------------------------------------------------------- /Day66-75/code/image360/image360/spiders/__init__.py: -------------------------------------------------------------------------------- 1 | # This package will contain the spiders of your Scrapy project 2 | # 3 | # Please refer to the documentation for information on how to create and manage 4 | # your spiders. 5 | -------------------------------------------------------------------------------- /Day66-75/code/image360/scrapy.cfg: -------------------------------------------------------------------------------- 1 | # Automatically created by: scrapy startproject 2 | # 3 | # For more information about the [deploy] section see: 4 | # https://scrapyd.readthedocs.io/en/latest/deploy.html 5 | 6 | [settings] 7 | default = image360.settings 8 | 9 | [deploy] 10 | #url = http://localhost:6800/ 11 | project = image360 12 | -------------------------------------------------------------------------------- /Day66-75/code/myutils.py: -------------------------------------------------------------------------------- 1 | from functools import wraps 2 | 3 | 4 | def coroutine(fn): 5 | 6 | @wraps(fn) 7 | def wrapper(*args, **kwargs): 8 | gen = fn(*args, **kwargs) 9 | next(gen) 10 | return gen 11 | 12 | return wrapper 13 | -------------------------------------------------------------------------------- /Day66-75/code/tesseract.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/Day66-75/code/tesseract.png -------------------------------------------------------------------------------- /Day66-75/res/api-image360.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/Day66-75/res/api-image360.png -------------------------------------------------------------------------------- /Day66-75/res/baidu-search-taobao.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/Day66-75/res/baidu-search-taobao.png -------------------------------------------------------------------------------- /Day66-75/res/chrome-developer-tools.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/Day66-75/res/chrome-developer-tools.png -------------------------------------------------------------------------------- /Day66-75/res/crawler-workflow.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/Day66-75/res/crawler-workflow.png -------------------------------------------------------------------------------- /Day66-75/res/douban-xpath.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/Day66-75/res/douban-xpath.png -------------------------------------------------------------------------------- /Day66-75/res/http-request.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/Day66-75/res/http-request.png -------------------------------------------------------------------------------- /Day66-75/res/http-response.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/Day66-75/res/http-response.png -------------------------------------------------------------------------------- /Day66-75/res/image360-website.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/Day66-75/res/image360-website.png -------------------------------------------------------------------------------- /Day66-75/res/postman.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/Day66-75/res/postman.png -------------------------------------------------------------------------------- /Day66-75/res/redis-save.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/Day66-75/res/redis-save.png -------------------------------------------------------------------------------- /Day66-75/res/scrapy-architecture.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/Day66-75/res/scrapy-architecture.png -------------------------------------------------------------------------------- /Day66-75/res/tesseract.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/Day66-75/res/tesseract.gif -------------------------------------------------------------------------------- /Day76-90/02.Pandas的应用.md: -------------------------------------------------------------------------------- 1 | ## Pandas的应用 2 | 3 | -------------------------------------------------------------------------------- /Day76-90/03.NumPy和SciPy的应用.md: -------------------------------------------------------------------------------- 1 | ## NumPy和SciPy的应用 2 | 3 | -------------------------------------------------------------------------------- /Day76-90/05.k最近邻分类.md: -------------------------------------------------------------------------------- 1 | ## k最近邻分类 2 | 3 | -------------------------------------------------------------------------------- /Day76-90/06.决策树.md: -------------------------------------------------------------------------------- 1 | ## 决策树 2 | 3 | -------------------------------------------------------------------------------- /Day76-90/07.贝叶斯分类.md: -------------------------------------------------------------------------------- 1 | ## 贝叶斯分类 2 | 3 | -------------------------------------------------------------------------------- /Day76-90/08.支持向量机.md: -------------------------------------------------------------------------------- 1 | ## 支持向量机 2 | 3 | -------------------------------------------------------------------------------- /Day76-90/09.K-均值聚类.md: -------------------------------------------------------------------------------- 1 | ## K-均值聚类 2 | 3 | -------------------------------------------------------------------------------- /Day76-90/10.回归分析.md: -------------------------------------------------------------------------------- 1 | ## 回归分析 2 | 3 | -------------------------------------------------------------------------------- /Day76-90/11.大数据分析入门.md: -------------------------------------------------------------------------------- 1 | ## 大数据分析入门 2 | 3 | -------------------------------------------------------------------------------- /Day76-90/12.大数据分析进阶.md: -------------------------------------------------------------------------------- 1 | ## 大数据分析进阶 2 | 3 | -------------------------------------------------------------------------------- /Day76-90/13.Tensorflow入门.md: -------------------------------------------------------------------------------- 1 | ## Tensorflow入门 2 | 3 | -------------------------------------------------------------------------------- /Day76-90/14.Tensorflow实战.md: -------------------------------------------------------------------------------- 1 | ## Tensorflow实战 2 | 3 | -------------------------------------------------------------------------------- /Day76-90/15.推荐系统实战.md: -------------------------------------------------------------------------------- 1 | ## 推荐系统实战 2 | 3 | -------------------------------------------------------------------------------- /Day76-90/res/201205230001213115.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/Day76-90/res/201205230001213115.png -------------------------------------------------------------------------------- /Day76-90/res/201205230001238839.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/Day76-90/res/201205230001238839.png -------------------------------------------------------------------------------- /Day76-90/res/20120523000125800.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/Day76-90/res/20120523000125800.png -------------------------------------------------------------------------------- /Day76-90/res/result-in-jupyter.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/Day76-90/res/result-in-jupyter.png -------------------------------------------------------------------------------- /Day76-90/res/result1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/Day76-90/res/result1.png -------------------------------------------------------------------------------- /Day76-90/res/result2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/Day76-90/res/result2.png -------------------------------------------------------------------------------- /Day76-90/res/result3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/Day76-90/res/result3.png -------------------------------------------------------------------------------- /Day76-90/res/result4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/Day76-90/res/result4.png -------------------------------------------------------------------------------- /Day76-90/res/result5.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/Day76-90/res/result5.png -------------------------------------------------------------------------------- /Day76-90/res/result6.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/Day76-90/res/result6.png -------------------------------------------------------------------------------- /Day76-90/res/result7.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/Day76-90/res/result7.png -------------------------------------------------------------------------------- /Day76-90/res/result8.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/Day76-90/res/result8.png -------------------------------------------------------------------------------- /Day76-90/res/result9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/Day76-90/res/result9.png -------------------------------------------------------------------------------- /Day91-100/res/01.django_single_server.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/Day91-100/res/01.django_single_server.png -------------------------------------------------------------------------------- /Day91-100/res/02.django_dedicated_db_server.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/Day91-100/res/02.django_dedicated_db_server.png -------------------------------------------------------------------------------- /Day91-100/res/03.django_dedicated_static_server.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/Day91-100/res/03.django_dedicated_static_server.png -------------------------------------------------------------------------------- /Day91-100/res/04.django_load_balance.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/Day91-100/res/04.django_load_balance.png -------------------------------------------------------------------------------- /Day91-100/res/05.django_massive_cluster.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/Day91-100/res/05.django_massive_cluster.png -------------------------------------------------------------------------------- /Day91-100/res/Celery_RabitMQ.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/Day91-100/res/Celery_RabitMQ.png -------------------------------------------------------------------------------- /Day91-100/res/Producer-Broker-Consumer-Arrangement.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/Day91-100/res/Producer-Broker-Consumer-Arrangement.png -------------------------------------------------------------------------------- /Day91-100/res/algorithm_complexity_1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/Day91-100/res/algorithm_complexity_1.png -------------------------------------------------------------------------------- /Day91-100/res/algorithm_complexity_2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/Day91-100/res/algorithm_complexity_2.png -------------------------------------------------------------------------------- /Day91-100/res/alipay_web_developer.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/Day91-100/res/alipay_web_developer.png -------------------------------------------------------------------------------- /Day91-100/res/aliyun-certificate.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/Day91-100/res/aliyun-certificate.png -------------------------------------------------------------------------------- /Day91-100/res/aliyun-dnslist.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/Day91-100/res/aliyun-dnslist.png -------------------------------------------------------------------------------- /Day91-100/res/aliyun-domain.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/Day91-100/res/aliyun-domain.png -------------------------------------------------------------------------------- /Day91-100/res/aliyun-keeprecord.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/Day91-100/res/aliyun-keeprecord.png -------------------------------------------------------------------------------- /Day91-100/res/aliyun-resolve-settings.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/Day91-100/res/aliyun-resolve-settings.png -------------------------------------------------------------------------------- /Day91-100/res/builtin-middlewares.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/Day91-100/res/builtin-middlewares.png -------------------------------------------------------------------------------- /Day91-100/res/celery_architecture.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/Day91-100/res/celery_architecture.png -------------------------------------------------------------------------------- /Day91-100/res/click-jacking.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/Day91-100/res/click-jacking.png -------------------------------------------------------------------------------- /Day91-100/res/company_architecture.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/Day91-100/res/company_architecture.png -------------------------------------------------------------------------------- /Day91-100/res/django-middleware.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/Day91-100/res/django-middleware.png -------------------------------------------------------------------------------- /Day91-100/res/django-mtv.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/Day91-100/res/django-mtv.png -------------------------------------------------------------------------------- /Day91-100/res/django_request_response_cycle.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/Day91-100/res/django_request_response_cycle.png -------------------------------------------------------------------------------- /Day91-100/res/docker_logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/Day91-100/res/docker_logo.png -------------------------------------------------------------------------------- /Day91-100/res/docker_vs_vm.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/Day91-100/res/docker_vs_vm.png -------------------------------------------------------------------------------- /Day91-100/res/er-graph.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/Day91-100/res/er-graph.png -------------------------------------------------------------------------------- /Day91-100/res/git_logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/Day91-100/res/git_logo.png -------------------------------------------------------------------------------- /Day91-100/res/git_repository.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/Day91-100/res/git_repository.png -------------------------------------------------------------------------------- /Day91-100/res/hadoop_ecosystem.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/Day91-100/res/hadoop_ecosystem.png -------------------------------------------------------------------------------- /Day91-100/res/http-request.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/Day91-100/res/http-request.png -------------------------------------------------------------------------------- /Day91-100/res/http-response.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/Day91-100/res/http-response.png -------------------------------------------------------------------------------- /Day91-100/res/jenkins_new_project.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/Day91-100/res/jenkins_new_project.png -------------------------------------------------------------------------------- /Day91-100/res/mvc.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/Day91-100/res/mvc.png -------------------------------------------------------------------------------- /Day91-100/res/oauth2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/Day91-100/res/oauth2.png -------------------------------------------------------------------------------- /Day91-100/res/power-designer-pdm.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/Day91-100/res/power-designer-pdm.png -------------------------------------------------------------------------------- /Day91-100/res/pylint.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/Day91-100/res/pylint.png -------------------------------------------------------------------------------- /Day91-100/res/python_jobs_chengdu.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/Day91-100/res/python_jobs_chengdu.png -------------------------------------------------------------------------------- /Day91-100/res/python_salary_chengdu.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/Day91-100/res/python_salary_chengdu.png -------------------------------------------------------------------------------- /Day91-100/res/rbac-basic.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/Day91-100/res/rbac-basic.png -------------------------------------------------------------------------------- /Day91-100/res/rbac-full.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/Day91-100/res/rbac-full.png -------------------------------------------------------------------------------- /Day91-100/res/redmine_new_issue.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/Day91-100/res/redmine_new_issue.png -------------------------------------------------------------------------------- /Day91-100/res/requirements_by_xmind.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/Day91-100/res/requirements_by_xmind.png -------------------------------------------------------------------------------- /Day91-100/res/selenium_ide.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/Day91-100/res/selenium_ide.png -------------------------------------------------------------------------------- /Day91-100/res/shopping-pdm.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/Day91-100/res/shopping-pdm.png -------------------------------------------------------------------------------- /Day91-100/res/the-daily-scrum-in-the-sprint-cycle.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/Day91-100/res/the-daily-scrum-in-the-sprint-cycle.png -------------------------------------------------------------------------------- /Day91-100/res/uml-class-diagram.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/Day91-100/res/uml-class-diagram.png -------------------------------------------------------------------------------- /Day91-100/res/uml-graph.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/Day91-100/res/uml-graph.png -------------------------------------------------------------------------------- /Day91-100/res/uml.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/Day91-100/res/uml.png -------------------------------------------------------------------------------- /Day91-100/res/web-application.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/Day91-100/res/web-application.png -------------------------------------------------------------------------------- /res/01.django_single_server.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/res/01.django_single_server.png -------------------------------------------------------------------------------- /res/02.django_dedicated_db_server.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/res/02.django_dedicated_db_server.png -------------------------------------------------------------------------------- /res/03.django_dedicated_static_server.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/res/03.django_dedicated_static_server.png -------------------------------------------------------------------------------- /res/04.django_load_balance.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/res/04.django_load_balance.png -------------------------------------------------------------------------------- /res/05.django_massive_cluster.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/res/05.django_massive_cluster.png -------------------------------------------------------------------------------- /res/Celery_RabitMQ.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/res/Celery_RabitMQ.png -------------------------------------------------------------------------------- /res/Producer-Broker-Consumer-Arrangement.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/res/Producer-Broker-Consumer-Arrangement.png -------------------------------------------------------------------------------- /res/abstraction-view.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/res/abstraction-view.png -------------------------------------------------------------------------------- /res/algorithm_complexity_1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/res/algorithm_complexity_1.png -------------------------------------------------------------------------------- /res/algorithm_complexity_2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/res/algorithm_complexity_2.png -------------------------------------------------------------------------------- /res/alipay_web_developer.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/res/alipay_web_developer.png -------------------------------------------------------------------------------- /res/aliyun-certificate.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/res/aliyun-certificate.png -------------------------------------------------------------------------------- /res/aliyun-dnslist.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/res/aliyun-dnslist.png -------------------------------------------------------------------------------- /res/aliyun-domain.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/res/aliyun-domain.png -------------------------------------------------------------------------------- /res/aliyun-keeprecord.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/res/aliyun-keeprecord.png -------------------------------------------------------------------------------- /res/aliyun-resolve-settings.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/res/aliyun-resolve-settings.png -------------------------------------------------------------------------------- /res/app_folder_arch.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/res/app_folder_arch.png -------------------------------------------------------------------------------- /res/builtin-middlewares.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/res/builtin-middlewares.png -------------------------------------------------------------------------------- /res/celery.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/res/celery.png -------------------------------------------------------------------------------- /res/celery_architecture.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/res/celery_architecture.png -------------------------------------------------------------------------------- /res/class-and-object.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/res/class-and-object.png -------------------------------------------------------------------------------- /res/click-jacking.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/res/click-jacking.png -------------------------------------------------------------------------------- /res/company_architecture.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/res/company_architecture.png -------------------------------------------------------------------------------- /res/concurrency.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/res/concurrency.png -------------------------------------------------------------------------------- /res/deployment_pipelines.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/res/deployment_pipelines.png -------------------------------------------------------------------------------- /res/django-middleware.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/res/django-middleware.png -------------------------------------------------------------------------------- /res/django-mtv.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/res/django-mtv.png -------------------------------------------------------------------------------- /res/django_request_response_cycle.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/res/django_request_response_cycle.png -------------------------------------------------------------------------------- /res/docker_logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/res/docker_logo.png -------------------------------------------------------------------------------- /res/docker_vs_vm.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/res/docker_vs_vm.png -------------------------------------------------------------------------------- /res/encapsulation.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/res/encapsulation.png -------------------------------------------------------------------------------- /res/er-graph.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/res/er-graph.png -------------------------------------------------------------------------------- /res/git_logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/res/git_logo.png -------------------------------------------------------------------------------- /res/git_repository.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/res/git_repository.png -------------------------------------------------------------------------------- /res/gitignore_io.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/res/gitignore_io.png -------------------------------------------------------------------------------- /res/greedy.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/res/greedy.png -------------------------------------------------------------------------------- /res/hadoop_ecosystem.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/res/hadoop_ecosystem.png -------------------------------------------------------------------------------- /res/http-request.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/res/http-request.png -------------------------------------------------------------------------------- /res/http-response.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/res/http-response.png -------------------------------------------------------------------------------- /res/int-is-comparation.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/res/int-is-comparation.png -------------------------------------------------------------------------------- /res/jenkins_new_project.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/res/jenkins_new_project.png -------------------------------------------------------------------------------- /res/modularity.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/res/modularity.png -------------------------------------------------------------------------------- /res/multi-inheritance.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/res/multi-inheritance.png -------------------------------------------------------------------------------- /res/mvc.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/res/mvc.png -------------------------------------------------------------------------------- /res/oauth2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/res/oauth2.png -------------------------------------------------------------------------------- /res/object-roles.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/res/object-roles.png -------------------------------------------------------------------------------- /res/objects-collaborate.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/res/objects-collaborate.png -------------------------------------------------------------------------------- /res/objects-lifetime.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/res/objects-lifetime.png -------------------------------------------------------------------------------- /res/power-designer-pdm.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/res/power-designer-pdm.png -------------------------------------------------------------------------------- /res/pycharm-activate.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/res/pycharm-activate.png -------------------------------------------------------------------------------- /res/pycharm-comm-django-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/res/pycharm-comm-django-1.png -------------------------------------------------------------------------------- /res/pycharm-comm-django-2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/res/pycharm-comm-django-2.png -------------------------------------------------------------------------------- /res/pycharm-comm-django-3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/res/pycharm-comm-django-3.png -------------------------------------------------------------------------------- /res/pycharm-comm-django-4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/res/pycharm-comm-django-4.png -------------------------------------------------------------------------------- /res/pycharm-comm-django-5.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/res/pycharm-comm-django-5.png -------------------------------------------------------------------------------- /res/pycharm-comm-django-6.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/res/pycharm-comm-django-6.png -------------------------------------------------------------------------------- /res/pycharm-comm-django-7.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/res/pycharm-comm-django-7.png -------------------------------------------------------------------------------- /res/pycharm-comm-django-8.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/res/pycharm-comm-django-8.png -------------------------------------------------------------------------------- /res/pycharm-create-launcher-script.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/res/pycharm-create-launcher-script.png -------------------------------------------------------------------------------- /res/pycharm-import-settings.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/res/pycharm-import-settings.png -------------------------------------------------------------------------------- /res/pycharm-new-project.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/res/pycharm-new-project.png -------------------------------------------------------------------------------- /res/pycharm-plugins.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/res/pycharm-plugins.png -------------------------------------------------------------------------------- /res/pycharm-prof-django-2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/res/pycharm-prof-django-2.png -------------------------------------------------------------------------------- /res/pycharm-prof-django-3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/res/pycharm-prof-django-3.png -------------------------------------------------------------------------------- /res/pycharm-set-ui-theme.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/res/pycharm-set-ui-theme.png -------------------------------------------------------------------------------- /res/pycharm-welcome.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/res/pycharm-welcome.png -------------------------------------------------------------------------------- /res/pycharm-workspace.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/res/pycharm-workspace.png -------------------------------------------------------------------------------- /res/pylint.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/res/pylint.png -------------------------------------------------------------------------------- /res/python-bj-salary.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/res/python-bj-salary.png -------------------------------------------------------------------------------- /res/python-built-in-functions.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/res/python-built-in-functions.png -------------------------------------------------------------------------------- /res/python-cd-salary.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/res/python-cd-salary.png -------------------------------------------------------------------------------- /res/python-job-all.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/res/python-job-all.png -------------------------------------------------------------------------------- /res/python-job-chengdu.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/res/python-job-chengdu.png -------------------------------------------------------------------------------- /res/python-salary-beijing.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/res/python-salary-beijing.png -------------------------------------------------------------------------------- /res/python-salary-chengdu.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/res/python-salary-chengdu.png -------------------------------------------------------------------------------- /res/python-salary-hangzhou.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/res/python-salary-hangzhou.png -------------------------------------------------------------------------------- /res/python-salary-shanghai.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/res/python-salary-shanghai.png -------------------------------------------------------------------------------- /res/python-salary-shenzhen.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/res/python-salary-shenzhen.png -------------------------------------------------------------------------------- /res/python-salary.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/res/python-salary.png -------------------------------------------------------------------------------- /res/python-str-join.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/res/python-str-join.png -------------------------------------------------------------------------------- /res/python-top-10.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/res/python-top-10.png -------------------------------------------------------------------------------- /res/python-tutor-visualize.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/res/python-tutor-visualize.png -------------------------------------------------------------------------------- /res/python-tutor-visualize2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/res/python-tutor-visualize2.png -------------------------------------------------------------------------------- /res/python_jobs_chengdu.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/res/python_jobs_chengdu.png -------------------------------------------------------------------------------- /res/python_salary_chengdu.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/res/python_salary_chengdu.png -------------------------------------------------------------------------------- /res/python_salary_guangzhou.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/res/python_salary_guangzhou.png -------------------------------------------------------------------------------- /res/rbac-basic.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/res/rbac-basic.png -------------------------------------------------------------------------------- /res/rbac-full.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/res/rbac-full.png -------------------------------------------------------------------------------- /res/redmine_new_issue.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/res/redmine_new_issue.png -------------------------------------------------------------------------------- /res/requirements_by_xmind.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/res/requirements_by_xmind.png -------------------------------------------------------------------------------- /res/result-of-dis.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/res/result-of-dis.png -------------------------------------------------------------------------------- /res/selenium-ide.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/res/selenium-ide.png -------------------------------------------------------------------------------- /res/selenium_ide.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/res/selenium_ide.png -------------------------------------------------------------------------------- /res/shopping-pdm.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/res/shopping-pdm.png -------------------------------------------------------------------------------- /res/the-daily-scrum-in-the-sprint-cycle.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/res/the-daily-scrum-in-the-sprint-cycle.png -------------------------------------------------------------------------------- /res/uml-class-diagram.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/res/uml-class-diagram.png -------------------------------------------------------------------------------- /res/uml-graph.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/res/uml-graph.png -------------------------------------------------------------------------------- /res/uml.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/res/uml.png -------------------------------------------------------------------------------- /res/web-application.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/res/web-application.png -------------------------------------------------------------------------------- /res/web-queue-worker-physical.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/res/web-queue-worker-physical.png -------------------------------------------------------------------------------- /res/zen-of-python.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/res/zen-of-python.png --------------------------------------------------------------------------------