日韩久久久精品,亚洲精品久久久久久久久久久,亚洲欧美一区二区三区国产精品 ,一区二区福利

Python Web框架Flask下網站開發入門實例

系統 19209 0

一、Flask簡介

Flask 是一個 Python 實現的 Web 開發微框架。官網:http://flask.pocoo.org/

二、Demo

1、代碼結構

復制代碼 代碼如下:

.
├── 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

復制代碼 代碼如下:

#!/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'請先登錄'
??? islogin = session.get('islogin')
??? nav_list = [u'首頁',u'經濟',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)

主要有首頁、注冊、登錄、上傳頁面。

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

3、首頁模板index.html

復制代碼 代碼如下:




???
??? 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%}
    ???????????

???????

???




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

4、登錄頁面login.html

復制代碼 代碼如下:




???
??? Login
???


???

???????

Login


???

???

???????

???????????

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

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

???????

???



結合blog.py主要展示表單如何提交取值,cookie和session應用。

5、注冊頁面regist.html

復制代碼 代碼如下:




???
??? Regist
???


???

???????

Regist


???

???

???????

???????????

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

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

???????

???




結合blog.py主要展示了數據庫操作。

6、上傳頁面upload.html

復制代碼 代碼如下:




???
??? Upload
???


???

???????

Upload


???

???

???????

???????????

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

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

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

???????

???




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

7、運行效果

Python Web框架Flask下網站開發入門實例_第1張圖片


更多文章、技術交流、商務合作、聯系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯系: 360901061

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

【本文對您有幫助就好】

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

發表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 云浮市| 彩票| 沙雅县| 霍州市| 蕉岭县| 肃南| 平原县| 通城县| 霍山县| 昌图县| 白河县| 牟定县| 常宁市| 家居| 华安县| 芷江| 杭锦后旗| 天门市| 株洲市| 九龙县| 寿宁县| 吴川市| 大名县| 滦平县| 肃宁县| 板桥市| 都安| 武威市| 桃园县| 隆昌县| 信宜市| 永州市| 洪江市| 开化县| 三门县| 涿州市| 安陆市| 巨鹿县| 武穴市| 墨脱县| 古交市|