From 01aa76afa7b18d5c1c48288fed1d9defcc50c982 Mon Sep 17 00:00:00 2001 From: Brian Lee <739142578@qq.com> Date: Mon, 21 Nov 2016 15:55:53 +0800 Subject: [PATCH 1/8] stage1 task final --- .gitignore | 6 ++++ Task1.md | 62 +++++++++++++++++++++++++++++++++++++++ stage1/YourCodeFolderHere | 0 3 files changed, 68 insertions(+) create mode 100644 .gitignore create mode 100644 Task1.md create mode 100644 stage1/YourCodeFolderHere diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..b33b618 --- /dev/null +++ b/.gitignore @@ -0,0 +1,6 @@ +.idea +.pyc +__pycache__ +.sqlite3 +.db +.Archive diff --git a/Task1.md b/Task1.md new file mode 100644 index 0000000..c693bb4 --- /dev/null +++ b/Task1.md @@ -0,0 +1,62 @@ +# Flask 从入门到... + - 2016-11-21 + - 来自你们即将滚蛋的老咸鱼部长以及郭dalao + +**Important: Use Python3+, UTF-8** + +## Stage 1 + - DEADLINE:**2016-11-30 23:59(UTC+8)** + +**切换到 stage1 分支!!!** +**切换到 stage1 分支!!!** +**切换到 stage1 分支!!!** + +### Target + +熟悉Flask框架 + +- 安装Flask,能用虚拟环境(virtualenv)更佳。 +- 能展示普通HTML页面。 +- 正确放置静态文件(static),css、js、jpg、png等等,在html中能够正确调用。 +- 能配置简单的URL路由,@app.route(xxx) +- 能从URL地址中捕获变量,并进行处理。e.g. `/home/VarToCapture`,能捕获VarToCapture处的内容。 +- 能渲染HTML模板(template),包括普通HTML,带变量HTML{{ varname }},带block的HTML(即该HTML在一个基础HTML模板上填入内容) +- 了解常见的模板变量、函数等等。 +- 知道MVC设计模式, Model(data), View(page), Controller(functions) + +### Tasks +**以下所有最终效果,除非特殊说明,均为使用Flask,启动项目内置webserver后,访问`http://127.0.0.1:5000`(具体看配置,一般默认为这个地址)所看到的** + +在同一个Flask 项目中: +1. 码农第一步,`Hello World` + - **要求:**访问`/step1`能看到`Hello World`字样。 + +2. Hello World PLUS + - 带样式的`Hello World`或其他内容(字体,字号,颜色等等),样式请使用CSS,并且放在单独的css文件中作为外联样式表。 + - 按钮,点击后页面弹出提示框,内容随意(提示:提示框在javascript中是`alert('text');`),js脚本同样请放在外部的js文件中。 + - 一张或以上的图片,内容正常,**禁止任何违反法律法规的图片或是任何部门内人物的表情包**。 + - **要求:**访问`/step2`能正常展示页面内容,js脚本工作正常。 + +3. Hello Dalao + - 创建一个base html,内容为两个block(空,仅作为占位),block命名自定。 + - 创建内容html,在base html的基础上扩展,两个block的内容写在这个页面中。 + - 第一个block内容为:放入`Hello, [1]! You are [2].`其中,1和2处均为从URL中捕获的字符串。URL规则:`/step3/[2]/[1]` + - 第二个block,通过后台传入一个数组变量,内容为部门QQ群的六个等级头衔加上一个`other`,逐一展示在页面上,如果上面的2内容和某一个头衔匹配,标记出该头衔(加粗,变色,前面加标记均可),否则标记出`other`。**只能通过flask模板,不能通过前端的方式!** + - 内容html是在base html的基础上扩展的,也是最终渲染的html。 + - 如果中文有问题,可以换成英文。 + - **要求:**访问`/step3/dalao/gg`,能看到`Hello, gg! You are dalao.`,下面的头衔列表中的`dalao`有标记,以此类推。 + +### How To Submit +- Fork这个repo,将你的代码放置在`stage1/<你名字的拼音>`目录下 +- 同时在该目录中放置一份requirements.txt,记录你安装的python库,生成方法(在命令行,非python):`$ pip freeze >> requirememts.txt`,在linux中可能是`$ pip3 freeze >> requirememts.txt`。 +- 在DEADLINE之前向主库发起Pull request,分支为**stage1**。除了你自己的目录,其他所有目录的文件都**不要修改** +- **切换到 stage1 分支!!!** +- **切换到 stage1 分支!!!** +- **切换到 stage1 分支!!!** + +### Recommended Resources +- [Official documents - Ver 0.11](http://flask.pocoo.org/docs/0.11/). Better read original english version. +- [Docs in Chinese - Ver 0.10](http://www.pythondoc.com/flask/) +- Tutorials about making a blog from scratch. + - [Flask Web 开发入门](https://www.gitbook.com/book/funhacks/head-first-flask/details) + - [Flaskr - OfficialDemo](http://flask.pocoo.org/docs/0.11/tutorial/introduction/) \ No newline at end of file diff --git a/stage1/YourCodeFolderHere b/stage1/YourCodeFolderHere new file mode 100644 index 0000000..e69de29 From 7480e782f2f19c0b7bb14575b7f1abb5c75aa756 Mon Sep 17 00:00:00 2001 From: Brian Lee <739142578@qq.com> Date: Mon, 21 Nov 2016 16:00:19 +0800 Subject: [PATCH 2/8] task1 adjustments --- Task1.md | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/Task1.md b/Task1.md index c693bb4..ec03d5c 100644 --- a/Task1.md +++ b/Task1.md @@ -1,14 +1,16 @@ # Flask 从入门到... - - 2016-11-21 - - 来自你们即将滚蛋的老咸鱼部长以及郭dalao +- 2016-11-21 +- 来自你们即将滚蛋的老咸鱼部长以及郭dalao **Important: Use Python3+, UTF-8** ## Stage 1 - - DEADLINE:**2016-11-30 23:59(UTC+8)** +- DEADLINE:**2016-11-30 23:59(UTC+8)** **切换到 stage1 分支!!!** + **切换到 stage1 分支!!!** + **切换到 stage1 分支!!!** ### Target @@ -28,7 +30,8 @@ **以下所有最终效果,除非特殊说明,均为使用Flask,启动项目内置webserver后,访问`http://127.0.0.1:5000`(具体看配置,一般默认为这个地址)所看到的** 在同一个Flask 项目中: -1. 码农第一步,`Hello World` + +1. CodeMonkey第一步,`Hello World` - **要求:**访问`/step1`能看到`Hello World`字样。 2. Hello World PLUS @@ -59,4 +62,4 @@ - [Docs in Chinese - Ver 0.10](http://www.pythondoc.com/flask/) - Tutorials about making a blog from scratch. - [Flask Web 开发入门](https://www.gitbook.com/book/funhacks/head-first-flask/details) - - [Flaskr - OfficialDemo](http://flask.pocoo.org/docs/0.11/tutorial/introduction/) \ No newline at end of file + - [Flaskr - OfficialDemo](http://flask.pocoo.org/docs/0.11/tutorial/introduction/) From 5b00ea0b6e6f92ce9459bde617be2dc4791ae0c0 Mon Sep 17 00:00:00 2001 From: zhangming <2856817781@qq.com> Date: Sun, 27 Nov 2016 21:33:42 +0800 Subject: [PATCH 3/8] demo --- stage1/demo_first_task_flask/README.txt | 12 +++ stage1/demo_first_task_flask/__init__.py | 12 +++ stage1/demo_first_task_flask/demo.py | 45 ++++++++ stage1/demo_first_task_flask/requirememts.txt | 100 ++++++++++++++++++ stage1/demo_first_task_flask/static/alert.js | 4 + stage1/demo_first_task_flask/static/style.css | 2 + .../static/use_linux.jpg | Bin 0 -> 10467 bytes .../demo_first_task_flask/templates/base.html | 15 +++ .../templates/step2.html | 18 ++++ .../templates/step3.html | 20 ++++ 10 files changed, 228 insertions(+) create mode 100644 stage1/demo_first_task_flask/README.txt create mode 100644 stage1/demo_first_task_flask/__init__.py create mode 100644 stage1/demo_first_task_flask/demo.py create mode 100644 stage1/demo_first_task_flask/requirememts.txt create mode 100644 stage1/demo_first_task_flask/static/alert.js create mode 100644 stage1/demo_first_task_flask/static/style.css create mode 100644 stage1/demo_first_task_flask/static/use_linux.jpg create mode 100644 stage1/demo_first_task_flask/templates/base.html create mode 100644 stage1/demo_first_task_flask/templates/step2.html create mode 100644 stage1/demo_first_task_flask/templates/step3.html diff --git a/stage1/demo_first_task_flask/README.txt b/stage1/demo_first_task_flask/README.txt new file mode 100644 index 0000000..6e46188 --- /dev/null +++ b/stage1/demo_first_task_flask/README.txt @@ -0,0 +1,12 @@ +你们的辣鸡学长应部长juju的要求写了个demo,供还不会的或者有问题的童鞋参考 + +1.需要html及css一点点的基础知识 +2.static整个目录配合第二个任务使用,放置js,css,jpg等静态文件。这里文件比较少就不设置二级目录了。 +3.templates目录放置html文件,其中step2.html为任务二所需,base.html,step3.html为任务三所需。 +使用jinja2模板引擎(需要知道jinja2基础语法)。 +2.__init__.py为设置此demo_first_task_flask为一个python的包(需要知道python的包与模块的概念)。 +3.app.py为应用脚本。运行方式(相信大家都知道):Linux/Windows python3 : $ python3 demo.py +4.requirements.txt中写这个demo并不需要这么多,我里面东西比较多罢了,只要你是pip3安装的问题都不大。 +5.url一律英文,群等级如大腿用拼音datui代替。 +6.不会的地方先看我源码,再解决不了的话回头看文档,再解决不了的话google/stackoverflow/baidu +7.写的比较仓促,有问题的地方欢迎交流。 diff --git a/stage1/demo_first_task_flask/__init__.py b/stage1/demo_first_task_flask/__init__.py new file mode 100644 index 0000000..84b34f8 --- /dev/null +++ b/stage1/demo_first_task_flask/__init__.py @@ -0,0 +1,12 @@ +## -*- coding: utf-8 -*- +""" + demo_first_task_flask.app + ~~~~~~~~~~~~~~ + + A brief demo for freshmen @Sicun Studio for first TASK with flask. + + :copyright: (c) 2016 by ZhangMing. + :license: BSD, see LICENSE_FILE for more details. +""" + +from demo_first_task_flask.demo import app diff --git a/stage1/demo_first_task_flask/demo.py b/stage1/demo_first_task_flask/demo.py new file mode 100644 index 0000000..7162055 --- /dev/null +++ b/stage1/demo_first_task_flask/demo.py @@ -0,0 +1,45 @@ +## -*- coding: utf-8 -*- +""" + demo_first_task_flask.demo + ~~~~~~~~~~~~~~ + + A brief demo for freshmen @Sicun Studio for first TASK with flask. + + :copyright: (c) 2016 by ZhangMing. + :license: BSD, see LICENSE_FILE for more details. +""" + +from flask import Flask +from flask import url_for, render_template + + +app = Flask('__name__') + +@app.route('/') +def index(): + return "

input urls for pages

like:\n\n\ +

127.0.0.1:5000/step1

\n\n\ +

127.0.0.1:5000/step2

\n\n\ +

127.0.0.1:5000/step3
like /step3/dalao/Sicun

" + +@app.route('/step1/') +def step1(): + return "Hello, World!" + +@app.route('/step2/') +def step2(): + return render_template('step2.html') +@app.route('/step3/') +def tmp_step3(): + return "

Please add & in url like /step3/dalao/Guo

" +@app.route('/step3///') +def step3(tag, username): + tag_list = ['xianyu', 'juju', 'dalao', 'datui', 'youtiao', 'mengxin'] + # judge if in the tag_list above + for list in tag_list: + if list == tag: + return render_template('step3.html',tag = list, username = username, tag_list = tag_list) + return render_template('step3.html',tag = 'other', username = username, tag_list = tag_list) + +if __name__ == '__main__': + app.run(debug=True) diff --git a/stage1/demo_first_task_flask/requirememts.txt b/stage1/demo_first_task_flask/requirememts.txt new file mode 100644 index 0000000..2108d7f --- /dev/null +++ b/stage1/demo_first_task_flask/requirememts.txt @@ -0,0 +1,100 @@ +aiohttp==1.0.3 +alembic==0.8.8 +apt-xapian-index==0.47 +apturl==0.5.2 +async-timeout==1.0.0 +beautifulsoup4==4.4.1 +bleach==1.5.0 +blinker==1.3 +Brlapi==0.6.4 +chardet==2.3.0 +checkbox-support==0.22 +click==6.6 +colorama==0.3.7 +command-not-found==0.3 +config==0.3.9 +cryptography==1.2.3 +defer==1.0.6 +docopt==0.6.2 +dominate==2.2.1 +feedparser==5.1.3 +Flask==0.11.1 +Flask-Bootstrap==3.3.7.0 +Flask-HTTPAuth==3.2.1 +Flask-Login==0.4.0 +Flask-Mail==0.9.1 +Flask-Migrate==2.0.0 +Flask-Moment==0.5.1 +Flask-PageDown==0.2.2 +Flask-Script==2.0.5 +Flask-SQLAlchemy==2.1 +Flask-WTF==0.13.1 +guacamole==0.9.2 +html5lib==0.999 +httplib2==0.9.1 +idna==2.0 +itsdangerous==0.24 +Jinja2==2.8 +language-selector==0.1 +louis==2.6.4 +lxml==3.5.0 +Mako==1.0.3 +Markdown==2.6.7 +MarkupSafe==0.23 +multidict==2.1.2 +mysqlclient==1.3.7 +oauthlib==1.0.3 +onboard==1.2.0 +oneconf==0.3.9 +padme==1.1.1 +pexpect==4.0.1 +Pillow==3.1.2 +piston-mini-client==0.7.5 +plainbox==0.25 +prettytable==0.7.2 +ptyprocess==0.5 +pyasn1==0.1.9 +pycups==1.9.73 +pycurl==7.43.0 +pygobject==3.20.0 +PyJWT==1.3.0 +PyMySQL==0.7.9 +pyparsing==2.0.3 +python-apt==1.1.0b1 +python-debian==0.1.27 +python-editor==1.0.1 +python-systemd==231 +pyxdg==0.25 +redis==2.10.5 +reportlab==3.3.0 +requests==2.9.1 +sessioninstaller==0.0.0 +six==1.10.0 +software-center-aptd-plugins==0.0.0 +SQLAlchemy==1.1.0 +system-service==0.3 +ubuntu-drivers-common==0.0.0 +ufw==0.35 +unattended-upgrades==0.1 +unity-scope-calculator==0.1 +unity-scope-chromiumbookmarks==0.1 +unity-scope-colourlovers==0.1 +unity-scope-devhelp==0.1 +unity-scope-firefoxbookmarks==0.1 +unity-scope-gdrive==0.7 +unity-scope-manpages==0.1 +unity-scope-openclipart==0.1 +unity-scope-texdoc==0.1 +unity-scope-tomboy==0.1 +unity-scope-virtualbox==0.1 +unity-scope-yelp==0.1 +unity-scope-zotero==0.1 +urllib3==1.13.1 +usb-creator==0.3.0 +virtualenv==15.1.0 +visitor==0.1.3 +Werkzeug==0.11.11 +WTForms==2.1 +xdiagnose==3.8.4.1 +xkit==0.0.0 +XlsxWriter==0.7.3 diff --git a/stage1/demo_first_task_flask/static/alert.js b/stage1/demo_first_task_flask/static/alert.js new file mode 100644 index 0000000..c84c314 --- /dev/null +++ b/stage1/demo_first_task_flask/static/alert.js @@ -0,0 +1,4 @@ +function demo() +{ +alert("Please throw Windows!"); +} diff --git a/stage1/demo_first_task_flask/static/style.css b/stage1/demo_first_task_flask/static/style.css new file mode 100644 index 0000000..4491ffe --- /dev/null +++ b/stage1/demo_first_task_flask/static/style.css @@ -0,0 +1,2 @@ +body { font-family: sans-serif; background: #eee; } +h1 { color: #377BA8; font-family: 'Georgia', serif; margin: 0; border-bottom: 2px solid #eee;} diff --git a/stage1/demo_first_task_flask/static/use_linux.jpg b/stage1/demo_first_task_flask/static/use_linux.jpg new file mode 100644 index 0000000000000000000000000000000000000000..656a133696126c1cae96cb8a3ae5afc4bc9319e6 GIT binary patch literal 10467 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 O-w6EwgFv#p?|%Z*188^v literal 0 HcmV?d00001 diff --git a/stage1/demo_first_task_flask/templates/base.html b/stage1/demo_first_task_flask/templates/base.html new file mode 100644 index 0000000..a0a6a14 --- /dev/null +++ b/stage1/demo_first_task_flask/templates/base.html @@ -0,0 +1,15 @@ + + + + step3 + + + {% block one %} + {# you should add things here in step3.html #} + {% endblock %} + + {% block two %} + {# you should also add things here in step3.html #} + {% endblock %} + + diff --git a/stage1/demo_first_task_flask/templates/step2.html b/stage1/demo_first_task_flask/templates/step2.html new file mode 100644 index 0000000..293d69d --- /dev/null +++ b/stage1/demo_first_task_flask/templates/step2.html @@ -0,0 +1,18 @@ + + + + + step2 + + + + + +

Hello, World!

+ {# use url_for to get resource #} + THROW WINDOWS +

+ + + + diff --git a/stage1/demo_first_task_flask/templates/step3.html b/stage1/demo_first_task_flask/templates/step3.html new file mode 100644 index 0000000..e17fef3 --- /dev/null +++ b/stage1/demo_first_task_flask/templates/step3.html @@ -0,0 +1,20 @@ +{% extends "base.html" %} + +{% block one %} +

Hello, {{ username }}, You are {{ tag }}!


+{% endblock %} + + +{% block two %} + {% for elm in tag_list %} + {% if elm == tag %} + {# if the tag exits in tag_list, then mark it as red color #} +

{{ elm }}

+ {% else %} +

{{ elm }}

+ {% endif %} + {% endfor %} + {% if tag == 'other' %} +

other

+ {% endif %} +{% endblock %} From 204ecf2465fa1608e7ef08cc97dda5ad6efd748d Mon Sep 17 00:00:00 2001 From: Githuberzhang Date: Sun, 27 Nov 2016 22:13:01 +0800 Subject: [PATCH 4/8] Update README.txt --- stage1/demo_first_task_flask/README.txt | 2 ++ 1 file changed, 2 insertions(+) diff --git a/stage1/demo_first_task_flask/README.txt b/stage1/demo_first_task_flask/README.txt index 6e46188..1efd379 100644 --- a/stage1/demo_first_task_flask/README.txt +++ b/stage1/demo_first_task_flask/README.txt @@ -10,3 +10,5 @@ 5.url一律英文,群等级如大腿用拼音datui代替。 6.不会的地方先看我源码,再解决不了的话回头看文档,再解决不了的话google/stackoverflow/baidu 7.写的比较仓促,有问题的地方欢迎交流。 + + 张铭 11/27/2016 From 7e61f252e4527320ac2dbe9aa371f5012e8ad431 Mon Sep 17 00:00:00 2001 From: Githuberzhang Date: Mon, 28 Nov 2016 12:35:52 +0800 Subject: [PATCH 5/8] Update demo.py --- stage1/demo_first_task_flask/demo.py | 2 ++ 1 file changed, 2 insertions(+) diff --git a/stage1/demo_first_task_flask/demo.py b/stage1/demo_first_task_flask/demo.py index 7162055..6b5689c 100644 --- a/stage1/demo_first_task_flask/demo.py +++ b/stage1/demo_first_task_flask/demo.py @@ -9,6 +9,8 @@ :license: BSD, see LICENSE_FILE for more details. """ +# Env: Ubuntu Linux 16.04 & Python 3.5.2 + from flask import Flask from flask import url_for, render_template From 4db559f1879557fcd091b884c92fe7f82ce85a33 Mon Sep 17 00:00:00 2001 From: Githuberzhang Date: Mon, 28 Nov 2016 12:37:05 +0800 Subject: [PATCH 6/8] Update README.txt --- stage1/demo_first_task_flask/README.txt | 2 ++ 1 file changed, 2 insertions(+) diff --git a/stage1/demo_first_task_flask/README.txt b/stage1/demo_first_task_flask/README.txt index 1efd379..1660b44 100644 --- a/stage1/demo_first_task_flask/README.txt +++ b/stage1/demo_first_task_flask/README.txt @@ -1,5 +1,7 @@ 你们的辣鸡学长应部长juju的要求写了个demo,供还不会的或者有问题的童鞋参考 +开发环境:Ubuntu Linux 16.04 & Python 3.5.2 + 1.需要html及css一点点的基础知识 2.static整个目录配合第二个任务使用,放置js,css,jpg等静态文件。这里文件比较少就不设置二级目录了。 3.templates目录放置html文件,其中step2.html为任务二所需,base.html,step3.html为任务三所需。 From 778c960b64f21abdde33239de95b0bdb7c084a42 Mon Sep 17 00:00:00 2001 From: zym013579 <15355219072@189.cn> Date: Thu, 1 Dec 2016 01:10:44 +0800 Subject: [PATCH 7/8] zhuyiming --- stage1/demo_first_task_flask/README.txt | 16 --- stage1/demo_first_task_flask/__init__.py | 12 --- stage1/demo_first_task_flask/demo.py | 47 -------- stage1/demo_first_task_flask/requirememts.txt | 100 ------------------ stage1/demo_first_task_flask/static/alert.js | 4 - stage1/demo_first_task_flask/static/style.css | 2 - .../static/use_linux.jpg | Bin 10467 -> 0 bytes .../demo_first_task_flask/templates/base.html | 15 --- .../templates/step2.html | 18 ---- .../templates/step3.html | 20 ---- 10 files changed, 234 deletions(-) delete mode 100644 stage1/demo_first_task_flask/README.txt delete mode 100644 stage1/demo_first_task_flask/__init__.py delete mode 100644 stage1/demo_first_task_flask/demo.py delete mode 100644 stage1/demo_first_task_flask/requirememts.txt delete mode 100644 stage1/demo_first_task_flask/static/alert.js delete mode 100644 stage1/demo_first_task_flask/static/style.css delete mode 100644 stage1/demo_first_task_flask/static/use_linux.jpg delete mode 100644 stage1/demo_first_task_flask/templates/base.html delete mode 100644 stage1/demo_first_task_flask/templates/step2.html delete mode 100644 stage1/demo_first_task_flask/templates/step3.html diff --git a/stage1/demo_first_task_flask/README.txt b/stage1/demo_first_task_flask/README.txt deleted file mode 100644 index 1660b44..0000000 --- a/stage1/demo_first_task_flask/README.txt +++ /dev/null @@ -1,16 +0,0 @@ -你们的辣鸡学长应部长juju的要求写了个demo,供还不会的或者有问题的童鞋参考 - -开发环境:Ubuntu Linux 16.04 & Python 3.5.2 - -1.需要html及css一点点的基础知识 -2.static整个目录配合第二个任务使用,放置js,css,jpg等静态文件。这里文件比较少就不设置二级目录了。 -3.templates目录放置html文件,其中step2.html为任务二所需,base.html,step3.html为任务三所需。 -使用jinja2模板引擎(需要知道jinja2基础语法)。 -2.__init__.py为设置此demo_first_task_flask为一个python的包(需要知道python的包与模块的概念)。 -3.app.py为应用脚本。运行方式(相信大家都知道):Linux/Windows python3 : $ python3 demo.py -4.requirements.txt中写这个demo并不需要这么多,我里面东西比较多罢了,只要你是pip3安装的问题都不大。 -5.url一律英文,群等级如大腿用拼音datui代替。 -6.不会的地方先看我源码,再解决不了的话回头看文档,再解决不了的话google/stackoverflow/baidu -7.写的比较仓促,有问题的地方欢迎交流。 - - 张铭 11/27/2016 diff --git a/stage1/demo_first_task_flask/__init__.py b/stage1/demo_first_task_flask/__init__.py deleted file mode 100644 index 84b34f8..0000000 --- a/stage1/demo_first_task_flask/__init__.py +++ /dev/null @@ -1,12 +0,0 @@ -## -*- coding: utf-8 -*- -""" - demo_first_task_flask.app - ~~~~~~~~~~~~~~ - - A brief demo for freshmen @Sicun Studio for first TASK with flask. - - :copyright: (c) 2016 by ZhangMing. - :license: BSD, see LICENSE_FILE for more details. -""" - -from demo_first_task_flask.demo import app diff --git a/stage1/demo_first_task_flask/demo.py b/stage1/demo_first_task_flask/demo.py deleted file mode 100644 index 6b5689c..0000000 --- a/stage1/demo_first_task_flask/demo.py +++ /dev/null @@ -1,47 +0,0 @@ -## -*- coding: utf-8 -*- -""" - demo_first_task_flask.demo - ~~~~~~~~~~~~~~ - - A brief demo for freshmen @Sicun Studio for first TASK with flask. - - :copyright: (c) 2016 by ZhangMing. - :license: BSD, see LICENSE_FILE for more details. -""" - -# Env: Ubuntu Linux 16.04 & Python 3.5.2 - -from flask import Flask -from flask import url_for, render_template - - -app = Flask('__name__') - -@app.route('/') -def index(): - return "

input urls for pages

like:\n\n\ -

127.0.0.1:5000/step1

\n\n\ -

127.0.0.1:5000/step2

\n\n\ -

127.0.0.1:5000/step3
like /step3/dalao/Sicun

" - -@app.route('/step1/') -def step1(): - return "Hello, World!" - -@app.route('/step2/') -def step2(): - return render_template('step2.html') -@app.route('/step3/') -def tmp_step3(): - return "

Please add & in url like /step3/dalao/Guo

" -@app.route('/step3///') -def step3(tag, username): - tag_list = ['xianyu', 'juju', 'dalao', 'datui', 'youtiao', 'mengxin'] - # judge if in the tag_list above - for list in tag_list: - if list == tag: - return render_template('step3.html',tag = list, username = username, tag_list = tag_list) - return render_template('step3.html',tag = 'other', username = username, tag_list = tag_list) - -if __name__ == '__main__': - app.run(debug=True) diff --git a/stage1/demo_first_task_flask/requirememts.txt b/stage1/demo_first_task_flask/requirememts.txt deleted file mode 100644 index 2108d7f..0000000 --- a/stage1/demo_first_task_flask/requirememts.txt +++ /dev/null @@ -1,100 +0,0 @@ -aiohttp==1.0.3 -alembic==0.8.8 -apt-xapian-index==0.47 -apturl==0.5.2 -async-timeout==1.0.0 -beautifulsoup4==4.4.1 -bleach==1.5.0 -blinker==1.3 -Brlapi==0.6.4 -chardet==2.3.0 -checkbox-support==0.22 -click==6.6 -colorama==0.3.7 -command-not-found==0.3 -config==0.3.9 -cryptography==1.2.3 -defer==1.0.6 -docopt==0.6.2 -dominate==2.2.1 -feedparser==5.1.3 -Flask==0.11.1 -Flask-Bootstrap==3.3.7.0 -Flask-HTTPAuth==3.2.1 -Flask-Login==0.4.0 -Flask-Mail==0.9.1 -Flask-Migrate==2.0.0 -Flask-Moment==0.5.1 -Flask-PageDown==0.2.2 -Flask-Script==2.0.5 -Flask-SQLAlchemy==2.1 -Flask-WTF==0.13.1 -guacamole==0.9.2 -html5lib==0.999 -httplib2==0.9.1 -idna==2.0 -itsdangerous==0.24 -Jinja2==2.8 -language-selector==0.1 -louis==2.6.4 -lxml==3.5.0 -Mako==1.0.3 -Markdown==2.6.7 -MarkupSafe==0.23 -multidict==2.1.2 -mysqlclient==1.3.7 -oauthlib==1.0.3 -onboard==1.2.0 -oneconf==0.3.9 -padme==1.1.1 -pexpect==4.0.1 -Pillow==3.1.2 -piston-mini-client==0.7.5 -plainbox==0.25 -prettytable==0.7.2 -ptyprocess==0.5 -pyasn1==0.1.9 -pycups==1.9.73 -pycurl==7.43.0 -pygobject==3.20.0 -PyJWT==1.3.0 -PyMySQL==0.7.9 -pyparsing==2.0.3 -python-apt==1.1.0b1 -python-debian==0.1.27 -python-editor==1.0.1 -python-systemd==231 -pyxdg==0.25 -redis==2.10.5 -reportlab==3.3.0 -requests==2.9.1 -sessioninstaller==0.0.0 -six==1.10.0 -software-center-aptd-plugins==0.0.0 -SQLAlchemy==1.1.0 -system-service==0.3 -ubuntu-drivers-common==0.0.0 -ufw==0.35 -unattended-upgrades==0.1 -unity-scope-calculator==0.1 -unity-scope-chromiumbookmarks==0.1 -unity-scope-colourlovers==0.1 -unity-scope-devhelp==0.1 -unity-scope-firefoxbookmarks==0.1 -unity-scope-gdrive==0.7 -unity-scope-manpages==0.1 -unity-scope-openclipart==0.1 -unity-scope-texdoc==0.1 -unity-scope-tomboy==0.1 -unity-scope-virtualbox==0.1 -unity-scope-yelp==0.1 -unity-scope-zotero==0.1 -urllib3==1.13.1 -usb-creator==0.3.0 -virtualenv==15.1.0 -visitor==0.1.3 -Werkzeug==0.11.11 -WTForms==2.1 -xdiagnose==3.8.4.1 -xkit==0.0.0 -XlsxWriter==0.7.3 diff --git a/stage1/demo_first_task_flask/static/alert.js b/stage1/demo_first_task_flask/static/alert.js deleted file mode 100644 index c84c314..0000000 --- a/stage1/demo_first_task_flask/static/alert.js +++ /dev/null @@ -1,4 +0,0 @@ -function demo() -{ -alert("Please throw Windows!"); -} diff --git a/stage1/demo_first_task_flask/static/style.css b/stage1/demo_first_task_flask/static/style.css deleted file mode 100644 index 4491ffe..0000000 --- a/stage1/demo_first_task_flask/static/style.css +++ /dev/null @@ -1,2 +0,0 @@ -body { font-family: sans-serif; background: #eee; } -h1 { color: #377BA8; font-family: 'Georgia', serif; margin: 0; border-bottom: 2px solid #eee;} diff --git a/stage1/demo_first_task_flask/static/use_linux.jpg b/stage1/demo_first_task_flask/static/use_linux.jpg deleted file mode 100644 index 656a133696126c1cae96cb8a3ae5afc4bc9319e6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 10467 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 O-w6EwgFv#p?|%Z*188^v diff --git a/stage1/demo_first_task_flask/templates/base.html b/stage1/demo_first_task_flask/templates/base.html deleted file mode 100644 index a0a6a14..0000000 --- a/stage1/demo_first_task_flask/templates/base.html +++ /dev/null @@ -1,15 +0,0 @@ - - - - step3 - - - {% block one %} - {# you should add things here in step3.html #} - {% endblock %} - - {% block two %} - {# you should also add things here in step3.html #} - {% endblock %} - - diff --git a/stage1/demo_first_task_flask/templates/step2.html b/stage1/demo_first_task_flask/templates/step2.html deleted file mode 100644 index 293d69d..0000000 --- a/stage1/demo_first_task_flask/templates/step2.html +++ /dev/null @@ -1,18 +0,0 @@ - - - - - step2 - - - - - -

Hello, World!

- {# use url_for to get resource #} - THROW WINDOWS -

- - - - diff --git a/stage1/demo_first_task_flask/templates/step3.html b/stage1/demo_first_task_flask/templates/step3.html deleted file mode 100644 index e17fef3..0000000 --- a/stage1/demo_first_task_flask/templates/step3.html +++ /dev/null @@ -1,20 +0,0 @@ -{% extends "base.html" %} - -{% block one %} -

Hello, {{ username }}, You are {{ tag }}!


-{% endblock %} - - -{% block two %} - {% for elm in tag_list %} - {% if elm == tag %} - {# if the tag exits in tag_list, then mark it as red color #} -

{{ elm }}

- {% else %} -

{{ elm }}

- {% endif %} - {% endfor %} - {% if tag == 'other' %} -

other

- {% endif %} -{% endblock %} From 6b39259dd11d0f18a679ea9551dd481c977a2516 Mon Sep 17 00:00:00 2001 From: zym013579 <15355219072@189.cn> Date: Thu, 1 Dec 2016 01:12:04 +0800 Subject: [PATCH 8/8] zhuyiming --- stage1/zhuyiming/README.txt | 3 +++ stage1/zhuyiming/run.py | 32 ++++++++++++++++++++++++++ stage1/zhuyiming/static/alert.js | 4 ++++ stage1/zhuyiming/static/study.jpg | Bin 0 -> 2350 bytes stage1/zhuyiming/static/style.css | 2 ++ stage1/zhuyiming/templates/step2.html | 18 +++++++++++++++ stage1/zhuyiming/templates/step3.html | 20 ++++++++++++++++ 7 files changed, 79 insertions(+) create mode 100644 stage1/zhuyiming/README.txt create mode 100644 stage1/zhuyiming/run.py create mode 100644 stage1/zhuyiming/static/alert.js create mode 100644 stage1/zhuyiming/static/study.jpg create mode 100644 stage1/zhuyiming/static/style.css create mode 100644 stage1/zhuyiming/templates/step2.html create mode 100644 stage1/zhuyiming/templates/step3.html diff --git a/stage1/zhuyiming/README.txt b/stage1/zhuyiming/README.txt new file mode 100644 index 0000000..e265c7b --- /dev/null +++ b/stage1/zhuyiming/README.txt @@ -0,0 +1,3 @@ +主要参照模板写的 + +(我好菜啊 \ No newline at end of file diff --git a/stage1/zhuyiming/run.py b/stage1/zhuyiming/run.py new file mode 100644 index 0000000..d49f5d1 --- /dev/null +++ b/stage1/zhuyiming/run.py @@ -0,0 +1,32 @@ +from flask import Flask +from flask import url_for, render_template + +app = Flask(__name__) + +@app.route('/') +@app.route('/index') +def index(): + return "

input urls for pages like

\n\n\ +

127.0.0.1:5000/step1

\n\n\ +

127.0.0.1:5000/step2

\n\n\ +

127.0.0.1:5000/step3/[2]/[1]

" + +@app.route('/step1/') +def step1(): + return "Hello, World!" + +@app.route('/step2/') +def step2(): + return render_template('step2.html') +@app.route('/step3///') +def step3(tag, name): + taglist = ('xianyu', 'juju', 'dalao', 'datui', 'youtiao', 'mengxin') + aa = False + for tmp in taglist: + if tmp == tag: + aa = True + if not aa: + tag = 'other' + return render_template('step3.html', tag = tag, username = name, tag_list = taglist) + +app.run(debug = True) diff --git a/stage1/zhuyiming/static/alert.js b/stage1/zhuyiming/static/alert.js new file mode 100644 index 0000000..a68830a --- /dev/null +++ b/stage1/zhuyiming/static/alert.js @@ -0,0 +1,4 @@ +function study() +{ +alert("No Study No Friendship!"); +} diff --git a/stage1/zhuyiming/static/study.jpg b/stage1/zhuyiming/static/study.jpg new file mode 100644 index 0000000000000000000000000000000000000000..1f1a0921cf4d04630b4afb6d34631d9fa87461b0 GIT binary patch literal 2350 zcmb7Dc{JPE9{)vad35GkVlCAcRXb5zEP0b!25r?=t%$UiI+_w&?4paJ*4mrco_#Q= zorFYD1dS>hu{6(4scOd-MJDa*nfLyk&pr2?&%O8a`Fy|U-gDWL?Ee6QR_2!G00;yC zAkF~Tb3mS1sP|m}u(VVL_y7Rl1t1_U0L)=-oXMAd;+yO{ghBt~pdb7J7sv5K!{z|^ zzkTnxli$6;Kl~6)EnTRV7F1LJtmY-Cjy6;W0&oE!uK%hsIV!Fn{D%QxPXm{M)52hJ zu+V97G4V6fr_Wx5t6Wr2xM&MC)`Z`7^z=YEA`$mO@el9$KMO=4pESolD=4Y1srGu% zK_!;=|WqBrzx%z-)`V9aPxppoaEx=9BK=4n&1L)o#5jF zxVgUzIE#})+`{L0v}{Gd=YN6U@lS);i7My>K9rN!b}M2}0es)WU_j$vd4HF5abDxu zcav0uMy#=2164kql@&=5UbOPDmFQF2#Z?&N8ITb6X4C+mdF|WIez6w`{;y2x%WxWb&!cyKTl+p zTOj(Fi5lpK=#R5>#iqeeTKF8FBfSa)%1REk$V|ist0iDx*R>3_iWW*AdcrEBIF8?&*vd34vKjEH(xdN>5&%`P|`D2PZ*@%(u*xIrK~Jy)KN zUu@Wi_tS$+sM&s;h#QfPG1Dnm#C;;o(5_~=Jw|S8dnBjmGBML8Sr7P^$ZXG$2qR~g zoJv`vV{bJg0rj{daVY>A3bGoQ2bV2pLWy>|#bN zqS|I1`jlD8cT=e`I>mX$WQFJMyPyZeLVs7_)gvVW*@O%SXOF6ho|U7 zt7aMK;=E;EyU~+NkxDy^FG<%hL6m36TLD=5a&;<(A?G6J0+w6MPTK$g9VX1{%JOk0 zL*}I-RCOR@=J#BMD?&4c8Wu8JLxJ@yGogw7Dss)ORC)67Cz5X1^Q}>?{vWG1kf@)GFJol-z~@fS?f@P_0a=_a4h5S#SKhwL{#Wa#yIR z$uB4Q);`~)_QA5Rvkc$cob$<@3fKtfGq$&N^;vD-qPmaq7n2T0TuSvBuT?AI+B>YY z`kuKtx6FX;PTi|>6Y;BSCFTCn+Os-e1)y@|>>w~k(4}^915FKcW^J)UO>C1KX|mvReLJT2^#bM%MG zDl4W(kR*(0xkH2R%YG{E4~M4CQl)TjSOMWv2_pG9YceesyQeg{pii@0pJTM97cETq zIy451JK^Fj(WEcPO0?q?&L4tHe|II=LN|nV~M)9c-)UbQVzCNr8?2_vQrDQaCo!z9}NEWTYB)e8Xd`yoMl%pg_|NN*fS$i z;8D{u_1ez%mL@#ud9|XVF1PS$KMbfsL!Q_4u9;46xN0}><K};A723=~o#1UBO#4HA_~k?hiiL5#J@RaPOR-b=MG2T^81s zW6fP%)e@}K2ViOOp$Wn{*8K#Ja<%vG$rUp9XB<0R=^b|DaFu1r`&(J{+0yF=C2AR6 z0|3C!t94wRalD{E=3QPuP?ffcS3sE=$Sf>Pta`mdiYr5u(=)L(#T~lNhe}>ez4Fz0s*hNP_4!T|3l$1FFzPUtgqg<@*HSdwvH|mco-A&2DhC zB`!JNiFlN2?~e%|tz(QFSZ^EWv4K*GSw;8t)xH)xXI~Tq%ivy-M;9OkkL@kg4rvN1 zG&@{^ysKCIM*2G)VN`JZscHzMCU{!X09IekU>qqNXm704&1t-O60D>KM=*=FRgoR{ zh#dzvMgnWaEXw`uT$3fr39G4BZEaKbO78=}KaEvJf6iK^TrLaOc(aC@z{OpO5?>AK tAH^k==A=uxKDHi}SWDeO6^+T7LY<0bR7Srk1lL^S2RI-8?*YVS{0Us1B|`uJ literal 0 HcmV?d00001 diff --git a/stage1/zhuyiming/static/style.css b/stage1/zhuyiming/static/style.css new file mode 100644 index 0000000..4491ffe --- /dev/null +++ b/stage1/zhuyiming/static/style.css @@ -0,0 +1,2 @@ +body { font-family: sans-serif; background: #eee; } +h1 { color: #377BA8; font-family: 'Georgia', serif; margin: 0; border-bottom: 2px solid #eee;} diff --git a/stage1/zhuyiming/templates/step2.html b/stage1/zhuyiming/templates/step2.html new file mode 100644 index 0000000..8981926 --- /dev/null +++ b/stage1/zhuyiming/templates/step2.html @@ -0,0 +1,18 @@ + + + + + step2 + + + + + +

Let's study!

+ {# use url_for to get resource #} + study +

+ + + + diff --git a/stage1/zhuyiming/templates/step3.html b/stage1/zhuyiming/templates/step3.html new file mode 100644 index 0000000..86632df --- /dev/null +++ b/stage1/zhuyiming/templates/step3.html @@ -0,0 +1,20 @@ +{% block one %} +

Hello, {{ username }}, You are {{ tag }}!


+{% endblock %} + + +{% block two %} + {% for elm in tag_list %} + {% if elm == tag %} + {# if the tag exits in tag_list, then mark it as red color #} +

{{ elm }}

+ {% else %} +

{{ elm }}

+ {% endif %} + {% endfor %} + {% if tag == 'other' %} +

other

+ {% else %} +

other

+ {% endif %} +{% endblock %}