亚洲免费在线-亚洲免费在线播放-亚洲免费在线观看-亚洲免费在线观看视频-亚洲免费在线看-亚洲免费在线视频

Python Web框架Flask下網(wǎng)站開發(fā)入門實(shí)例

系統(tǒng) 19062 0

一、Flask簡(jiǎn)介

Flask 是一個(gè) Python 實(shí)現(xiàn)的 Web 開發(fā)微框架。官網(wǎng):http://flask.pocoo.org/

二、Demo

1、代碼結(jié)構(gòu)

復(fù)制代碼 代碼如下:

.
├── blog.py
├── static
│?? ├── css
│?? │?? └── index.css
│?? ├── images
│?? │?? ├── cat.jpg
│?? │?? └── sheying1229.jpg
│?? └── js
└── templates
??? ├── index.html
??? ├── login.html
??? ├── regist.html
??? └── upload.html

5 directories, 8 files

2、主程序blog.py

復(fù)制代碼 代碼如下:

#!/usr/bin/python
#coding:utf8

from flask import Flask, render_template, url_for, request,redirect,make_response,session
import os,MySQLdb

app = Flask(__name__)
app.secret_key='afjlsjfowflajflkajfkjfkaljf'
user_list = ['jim','max','py']

imagepath = os.path.join(os.getcwd(),"static/images")

@app.route('/')
def index():
??? username = request.cookies.get('username')
??? if not username:
??????? username = u'請(qǐng)先登錄'
??? islogin = session.get('islogin')
??? nav_list = [u'首頁',u'經(jīng)濟(jì)',u'文化',u'科技',u'娛樂']
??? blog = {'title':'welcome to my blog','content':'hello, welcome to my blog.'}
??? blogtag = {'javascript':10,"python":20,"shell":5}
??? img = url_for('static', filename="images/cat.jpg")
??? return render_template('index.html', nav_list=nav_list, username=username, blog = blog, blogtag = blogtag, img=img, islogin=islogin)

@app.route('/reg', methods=['GET','POST'])
def regist():
??? if request.method == 'POST':
??????? username = request.form['username']
??????? conn = MySQLdb.connect(user='root',passwd='admin',host='127.0.0.1')
??????? conn.select_db('blog')
??????? curr = conn.cursor()
??????? sql = 'insert into `user` (`id`,`username`) values (%d,"%s")' % (1,username)
??????? curr.execute(sql)
??????? conn.commit()
??????? curr.close()
??????? conn.close()
??????? return "user %s regist ok!" % request.form['username']
??? else:
??????? #request.args['username']
??????? return render_template('regist.html')

@app.route('/upload', methods=['GET','POST'])
def upload():
??? if request.method == 'POST':
??????? username = request.form['username']
??????? file = request.files['img']
??????? filename = file.filename
??????? file.save(os.path.join(imagepath,filename))
??????? return " " % filename
??? else:
??????? return render_template('upload.html')

@app.route('/login/', methods=['GET','POST'])
def login():
??? if request.method == 'POST':
??????? username = request.form.get('username')
??????? if username in user_list:
??????????? response = make_response(redirect('/'))
??????????? response.set_cookie('username', value=username, max_age=300)
??????????? session['islogin'] = '1'
??????????? return response
??????? else:
??????????? session['islogin'] = '0'
??????????? return redirect('/login/')
??? else:
??????? return render_template('login.html')

if __name__ == '__main__':
??? app.run(debug=True,host='0.0.0.0',port=5000)

主要有首頁、注冊(cè)、登錄、上傳頁面。

blog.py主要是展示了Flask中常見功能用法:路由,數(shù)據(jù)庫操作,cookie,session,redirect,表單,文件上傳,調(diào)試,Web服務(wù)器的IP和端口,靜態(tài)文件讀取等。

3、首頁模板index.html

復(fù)制代碼 代碼如下:




???
??? Flask DEMO
???


???

??????? {%if islogin == '1' %}
???????

Welcome ,{{username}}!


??????? {%else%}
???????

{{username}}!


??????? {%endif%}
???????
???

???

???????

???????????

{{blog['title']}}


???????????

??????????????? cat
???????????????

{{blog['content']}}


??????????????? cat
???????????

???????

???????

???????????

    ??????????????? {%for key,value in blogtag.items()%}
    ???????????????????
  • {{key}}({{value}})

  • ??????????????? {%endfor%}
    ???????????

???????

???




這個(gè)模板主要展示了在Flask模板中如何讀取各種類型的變量。

4、登錄頁面login.html

復(fù)制代碼 代碼如下:




???
??? Login
???


???

???????

Login


???

???

???????

???????????

???????????????

???????????????
???????????

???????

???



結(jié)合blog.py主要展示表單如何提交取值,cookie和session應(yīng)用。

5、注冊(cè)頁面regist.html

復(fù)制代碼 代碼如下:




???
??? Regist
???


???

???????

Regist


???

???

???????

???????????

???????????????

???????????????
???????????

???????

???




結(jié)合blog.py主要展示了數(shù)據(jù)庫操作。

6、上傳頁面upload.html

復(fù)制代碼 代碼如下:




???
??? Upload
???


???

???????

Upload


???

???

???????

???????????

???????????????

???????????????

???????????????
???????????

???????

???




結(jié)合blog.py主要展示了如何上傳文件。

7、運(yùn)行效果

Python Web框架Flask下網(wǎng)站開發(fā)入門實(shí)例_第1張圖片


更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號(hào)聯(lián)系: 360901061

您的支持是博主寫作最大的動(dòng)力,如果您喜歡我的文章,感覺我的文章對(duì)您有幫助,請(qǐng)用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點(diǎn)擊下面給點(diǎn)支持吧,站長(zhǎng)非常感激您!手機(jī)微信長(zhǎng)按不能支付解決辦法:請(qǐng)將微信支付二維碼保存到相冊(cè),切換到微信,然后點(diǎn)擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對(duì)您有幫助就好】

您的支持是博主寫作最大的動(dòng)力,如果您喜歡我的文章,感覺我的文章對(duì)您有幫助,請(qǐng)用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長(zhǎng)會(huì)非常 感謝您的哦!!!

發(fā)表我的評(píng)論
最新評(píng)論 總共0條評(píng)論
主站蜘蛛池模板: 亚洲精品自拍视频 | 成人在线a| 免费一看一级毛片全播放 | 欧美一级高清在线观看 | 久热网站| 亚洲成a人| 国产成人精品影院狼色在线 | 日本精品中文字幕在线不卡 | 免费一级特黄特色黄大任片 | 夜色私人影院永久地址入口 | 亚洲视频在线观看免费视频 | 亚洲图区综合 | 日本一线一区二区三区免费视频 | 日本一级高清不卡视频在线 | 久久国产高清一区二区三区 | 亚洲专区一路线二 | 亚洲一区二区在线 | 精品牛牛影视久久精品 | 日韩精品视频美在线精品视频 | 伊人网综合在线视频 | 欧美久久久久欧美一区 | 一级毛片一级毛片一级级毛片 | 青青国产成人久久激情911 | 日本视频播放免费线上观看 | 手机福利在线观看 | 奇米色奇米 | 国产亚洲欧美久久久久 | 一本一本久久a久久精品综合麻豆 | 日韩欧美福利 | 成人免费网站视频www | 日本亚洲欧美美色 | 华人亚洲欧美精品国产 | 国产uv1区二区三区 国产va | 国产成人精品免费视频大全办公室 | 免费看一级做a爰片久久 | 久久久国产精品免费看 | 欧美一级毛片欧美一级 | 四虎精品影院在线观看视频 | 天天干天天添 | 欧美在线视频网站 | 久久国产成人精品麻豆 |