Table of Contents
Welcome ,{{username}}!
{{username}}!
{{blog['title']}}
Login
Regist
Upload
Home Backend Development Python Tutorial Python Web框架Flask下网站开发入门实例

Python Web框架Flask下网站开发入门实例

Jun 10, 2016 pm 03:17 PM
flask python web framework website development

一、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、运行效果

Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn

Hot AI Tools

Undresser.AI Undress

Undresser.AI Undress

AI-powered app for creating realistic nude photos

AI Clothes Remover

AI Clothes Remover

Online AI tool for removing clothes from photos.

Undress AI Tool

Undress AI Tool

Undress images for free

Clothoff.io

Clothoff.io

AI clothes remover

AI Hentai Generator

AI Hentai Generator

Generate AI Hentai for free.

Hot Article

R.E.P.O. Energy Crystals Explained and What They Do (Yellow Crystal)
4 weeks ago By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Best Graphic Settings
4 weeks ago By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. How to Fix Audio if You Can't Hear Anyone
1 months ago By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Chat Commands and How to Use Them
1 months ago By 尊渡假赌尊渡假赌尊渡假赌

Hot Tools

Notepad++7.3.1

Notepad++7.3.1

Easy-to-use and free code editor

SublimeText3 Chinese version

SublimeText3 Chinese version

Chinese version, very easy to use

Zend Studio 13.0.1

Zend Studio 13.0.1

Powerful PHP integrated development environment

Dreamweaver CS6

Dreamweaver CS6

Visual web development tools

SublimeText3 Mac version

SublimeText3 Mac version

God-level code editing software (SublimeText3)

PHP and Python: Comparing Two Popular Programming Languages PHP and Python: Comparing Two Popular Programming Languages Apr 14, 2025 am 12:13 AM

PHP and Python each have their own advantages, and choose according to project requirements. 1.PHP is suitable for web development, especially for rapid development and maintenance of websites. 2. Python is suitable for data science, machine learning and artificial intelligence, with concise syntax and suitable for beginners.

Python and Time: Making the Most of Your Study Time Python and Time: Making the Most of Your Study Time Apr 14, 2025 am 12:02 AM

To maximize the efficiency of learning Python in a limited time, you can use Python's datetime, time, and schedule modules. 1. The datetime module is used to record and plan learning time. 2. The time module helps to set study and rest time. 3. The schedule module automatically arranges weekly learning tasks.

How to configure HTTPS server in Debian OpenSSL How to configure HTTPS server in Debian OpenSSL Apr 13, 2025 am 11:03 AM

Configuring an HTTPS server on a Debian system involves several steps, including installing the necessary software, generating an SSL certificate, and configuring a web server (such as Apache or Nginx) to use an SSL certificate. Here is a basic guide, assuming you are using an ApacheWeb server. 1. Install the necessary software First, make sure your system is up to date and install Apache and OpenSSL: sudoaptupdatesudoaptupgradesudoaptinsta

PHP's Purpose: Building Dynamic Websites PHP's Purpose: Building Dynamic Websites Apr 15, 2025 am 12:18 AM

PHP is used to build dynamic websites, and its core functions include: 1. Generate dynamic content and generate web pages in real time by connecting with the database; 2. Process user interaction and form submissions, verify inputs and respond to operations; 3. Manage sessions and user authentication to provide a personalized experience; 4. Optimize performance and follow best practices to improve website efficiency and security.

What service is apache What service is apache Apr 13, 2025 pm 12:06 PM

Apache is the hero behind the Internet. It is not only a web server, but also a powerful platform that supports huge traffic and provides dynamic content. It provides extremely high flexibility through a modular design, allowing for the expansion of various functions as needed. However, modularity also presents configuration and performance challenges that require careful management. Apache is suitable for server scenarios that require highly customizable and meet complex needs.

What language is apache written in? What language is apache written in? Apr 13, 2025 pm 12:42 PM

Apache is written in C. The language provides speed, stability, portability, and direct hardware access, making it ideal for web server development.

Breaking Down Bootstrap: What It Is and Why It Matters Breaking Down Bootstrap: What It Is and Why It Matters Apr 14, 2025 am 12:05 AM

Bootstrapisafree,open-sourceCSSframeworkthatsimplifiesresponsiveandmobile-firstwebsitedevelopment.Itofferspre-styledcomponentsandagridsystem,streamliningthecreationofaestheticallypleasingandfunctionalwebdesigns.

PHP and Python: Code Examples and Comparison PHP and Python: Code Examples and Comparison Apr 15, 2025 am 12:07 AM

PHP and Python have their own advantages and disadvantages, and the choice depends on project needs and personal preferences. 1.PHP is suitable for rapid development and maintenance of large-scale web applications. 2. Python dominates the field of data science and machine learning.

See all articles