1 專案簡介 基本頁面 git使用.md
阿新 • • 發佈:2018-12-11
專案簡介
為什麼做一個模仿 Instagram 的應用
- 偏後端和後臺的開發
- 充分利用 tornado 的特點
- 積累專案經驗,鞏固知識點
Instagram 主要組成
- 發現或最近上傳的圖片頁面
- 所關注的使用者圖片流
- 單個圖片詳情頁面
- 資料庫 Database
- 使用者檔案 User Profile
可以附加的功能
- 圖片新增文字
- 圖片修改
- 其他有用的小功能
怎麼做
- 從最簡單開始,迭代增加功能
- 使用者,登陸,關注等
- 資料庫儲存
- UI 和 Web 介面美化
- 外部連線
開始功能
執行基本程式
- handlers 配置
- templates 和 static 目錄設定
三個基本頁面
-
發現或最近上傳的圖片頁面 /explore ExploreHandler
-
所關注的使用者圖片流 / IndexHandler
-
單個圖片詳情頁面 /post/id PostHandler
程式碼
專案初始化 建立基本頁面
import tornado.ioloop
import tornado.options
import tornado.web
from tornado.options import define, options
from handlers import main
define('port', default='8000', type=int, help='Listening port')
class Application (tornado.web.Application):
def __init__(self):
handlers = [
('/', main.IndexHandler),
('/explore', main.ExploreHandler),
('/post/(?P<post_id>[0-9]+)', main.PostHandler),
]
settings = dict(
debug=True,
template_path='template',
)
super(Application, self).__init__(handlers, **settings)
application = Application()
if __name__ == '__main__':
tornado.options.parse_command_line()
application.listen(options.port)
print("Server start on port {}".format(str(options.port)))
tornado.ioloop.IOLoop.current().start()
import tornado.web
class IndexHandler(tornado.web.RequestHandler):
"""
Home page for user,photo feeds.
"""
def get(self, *args, **kwargs):
# self.write('ok...')
self.render('index.html')
class ExploreHandler(tornado.web.RequestHandler):
"""
Explore page ,photo of other users.
"""
def get(self, *args, **kwargs):
# self.write('ok...')
self.render('explore.html')
class PostHandler(tornado.web.RequestHandler):
"""
Single photo page,and maybe comments
"""
def get(self, *args, **kwargs):
self.render('post.html', post_id=kwargs['post_id'])
base.html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>{% block title %}Title{% end %}</title>
</head>
<body>
{% block content %}
base content
{% end%}
</body>
</html>
index.html
{% extends 'base.html' %}
{% block title %}
index page
{% end %}
{% block content %}
index content
{% end %}
explore.html
{% extends 'base.html' %}
{% block title %}
explore page
{% end %}
{% block content %}
explore content
{% end %}
post.html
{% extends 'base.html' %}
{% block title %}
post page
{% end %}
{% block content %}
post of {{ post_id }} content
{% end %}
增加簡單的圖片顯示
import tornado.ioloop
import tornado.options
import tornado.web
from tornado.options import define, options
from handlers import main
define('port', default='8000', type=int, help='Listening port')
class Application(tornado.web.Application):
def __init__(self):
handlers = [
('/', main.IndexHandler),
('/explore', main.ExploreHandler),
('/post/(?P<post_id>[0-9]+)', main.PostHandler),
]
settings = dict(
debug=True,
template_path='template',
static_path='static',
)
super(Application, self).__init__(handlers, **settings)
application = Application()
if __name__ == '__main__':
tornado.options.parse_command_line()
application.listen(options.port)
print("Server start on port {}".format(str(options.port)))
tornado.ioloop.IOLoop.current().start()
import tornado.web
class IndexHandler(tornado.web.RequestHandler):
"""
Home page for user,photo feeds.
"""
def get(self, *args, **kwargs):
self.render('index.html')
class ExploreHandler(tornado.web.RequestHandler):
"""
Explore page ,photo of other users.
"""
def get(self, *args, **kwargs):
self.render('explore.html')
class PostHandler(tornado.web.RequestHandler):
"""
Single photo page,and maybe comments
"""
def get(self, *args, **kwargs):
self.render('post.html', post_id=kwargs['post_id'])
base.html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>{% block title %}Title{% end %}</title>
</head>
<body>
{% block content %}
base content
{% end%}
</body>
</html>
index.html
{% extends 'base.html' %}
{% block title %}
index page
{% end %}
{% block content %}
{% for i in range(1,5) %}
<img src="{{ static_url("images/{}.jpg".format(i)) }} " width="666">
{% end %}
{% end %}
explore.html
{% extends 'base.html' %}
{% block title %}
explore page
{% end %}
{% block content %}
{% for i in range(1,5) %}
<img src="{{ static_url("images/{}.jpg".format(i)) }} " width="333">
{% end %}
{% end %}
post.html
{% extends 'base.html' %}
{% block title %}
post page
{% end %}
{% block content %}
<img src="{{ static_url("images/{}.jpg".format(post_id)) }} " width=666">
{% end %}
Git 使用
使用參考文件
git 使用簡易指南
http://www.bootcss.com/p/git-guide/
在Pycharm中使用GitHub - 劉江liujiangblog.com - 部落格園 https://www.cnblogs.com/feixuelove1009/p/5955332.html
Git - 起步
https://git-scm.com/book/zh/v1/%E8%B5%B7%E6%AD%A5
初次執行配置使用者資訊(在 cmd 裡執行)
git config --global user.name "John Doe"
git config --global user.email [email protected]
Linux 安裝
sudo apt-get install git
git init 建立新倉庫
git status 檢視狀態
git add * 新增 (把改動新增到快取區)
git status
git commit -m 'init commit' 提交 (改動已經提交到了 HEAD,但是還沒到你的遠端倉庫)
git status
git config --global user.name "wushanshan"
git config --global user.email [email protected]
如果修改了 app.py 檔案
git add app.py
git status
git commit -m 'modify app.py'
git diff 檢視改變
git checkout -- . 撤銷更改
如果修改了兩個檔案 一起提交
git add *
git status
git commit -m 'modify two files'
下載地址