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

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)論
主站蜘蛛池模板: 欧美性猛交xxxxxxxx软件 | 久久精热 | 日本一级毛片私人影院 | 日本中文字幕免费 | 男人在线资源 | 日韩国产午夜一区二区三区 | 中文字幕视频不卡 | 亚洲三级在线免费观看 | 亚洲国产成人久久精品hezyo | 狠狠色丁香久久婷婷综合五月 | 狠狠操夜夜爱 | 一级a性色生活片毛片 | 日本高清不卡码 | 日本一级大黄毛片免费基地 | 日本一区高清视频 | 手机看片精品高清国产日韩 | 欧产日产国产精品专区 | 日本不卡高清视频 | 日日噜噜夜夜狠狠tv视频免费 | 久久免费视频1 | 日韩亚洲国产综合久久久 | 亚洲91色| 国产a不卡片精品免费观看 国产a高清 | 国产精品伦理久久久久 | 欧美亚洲综合另类成人 | 欧美在线视频播放 | 毛片毛片毛片毛片毛片 | 羞羞色男人的天堂伊人久久 | 国内精品综合九九久久精品 | 97在线碰碰观看免费高清 | 国产成人小视频在线观看 | 久久99精品久久久久久水蜜桃 | 99j久久精品久久久久久 | 日韩3区| 中文精品爱久久久国产 | 色吧五月婷婷 | 国产一级特黄全黄毛片 | 欧美图片一区二区三区 | 久久久91精品国产一区二区 | 又粗又大的机巴好爽7 | 成人午夜在线播放 |