Inhaltsverzeichnis
Welcome ,{{username}}!
{{username}}!
{{blog['title']}}
Login
Regist
Upload
Heim Backend-Entwicklung Python-Tutorial Python Web框架Flask下网站开发入门实例

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

Jun 10, 2016 pm 03:17 PM
flask python web框架 网站开发

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

Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

AI Hentai Generator

AI Hentai Generator

Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

R.E.P.O. Energiekristalle erklärten und was sie tun (gelber Kristall)
1 Monate vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Beste grafische Einstellungen
1 Monate vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. So reparieren Sie Audio, wenn Sie niemanden hören können
1 Monate vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Chat -Befehle und wie man sie benutzt
1 Monate vor By 尊渡假赌尊渡假赌尊渡假赌

Heiße Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Zweck von PHP: Erstellen dynamischer Websites Zweck von PHP: Erstellen dynamischer Websites Apr 15, 2025 am 12:18 AM

PHP wird verwendet, um dynamische Websites zu erstellen. Zu den Kernfunktionen gehören: 1. Dynamische Inhalte generieren und Webseiten in Echtzeit generieren, indem Sie eine Verbindung mit der Datenbank herstellen; 2. Verarbeiten Sie Benutzerinteraktions- und Formulareinreichungen, überprüfen Sie Eingaben und reagieren Sie auf Operationen. 3. Verwalten Sie Sitzungen und Benutzerauthentifizierung, um eine personalisierte Erfahrung zu bieten. 4. Optimieren Sie die Leistung und befolgen Sie die Best Practices, um die Effizienz und Sicherheit der Website zu verbessern.

PHP und Python: Code Beispiele und Vergleich PHP und Python: Code Beispiele und Vergleich Apr 15, 2025 am 12:07 AM

PHP und Python haben ihre eigenen Vor- und Nachteile, und die Wahl hängt von den Projektbedürfnissen und persönlichen Vorlieben ab. 1.PHP eignet sich für eine schnelle Entwicklung und Wartung großer Webanwendungen. 2. Python dominiert das Gebiet der Datenwissenschaft und des maschinellen Lernens.

Wie man ein Pytorch -Modell auf CentOS trainiert Wie man ein Pytorch -Modell auf CentOS trainiert Apr 14, 2025 pm 03:03 PM

Effizientes Training von Pytorch -Modellen auf CentOS -Systemen erfordert Schritte, und dieser Artikel bietet detaillierte Anleitungen. 1.. Es wird empfohlen, YUM oder DNF zu verwenden, um Python 3 und Upgrade PIP zu installieren: Sudoyumupdatepython3 (oder sudodnfupdatepython3), PIP3Install-upgradepip. CUDA und CUDNN (GPU -Beschleunigung): Wenn Sie Nvidiagpu verwenden, müssen Sie Cudatool installieren

Wie ist die GPU -Unterstützung für Pytorch bei CentOS? Wie ist die GPU -Unterstützung für Pytorch bei CentOS? Apr 14, 2025 pm 06:48 PM

Aktivieren Sie die Pytorch -GPU -Beschleunigung am CentOS -System erfordert die Installation von CUDA-, CUDNN- und GPU -Versionen von Pytorch. Die folgenden Schritte führen Sie durch den Prozess: Cuda und Cudnn Installation Bestimmen Sie die CUDA-Version Kompatibilität: Verwenden Sie den Befehl nvidia-smi, um die von Ihrer NVIDIA-Grafikkarte unterstützte CUDA-Version anzuzeigen. Beispielsweise kann Ihre MX450 -Grafikkarte CUDA11.1 oder höher unterstützen. Download und installieren Sie Cudatoolkit: Besuchen Sie die offizielle Website von Nvidiacudatoolkit und laden Sie die entsprechende Version gemäß der höchsten CUDA -Version herunter und installieren Sie sie, die von Ihrer Grafikkarte unterstützt wird. Installieren Sie die Cudnn -Bibliothek:

Detaillierte Erklärung des Docker -Prinzips Detaillierte Erklärung des Docker -Prinzips Apr 14, 2025 pm 11:57 PM

Docker verwendet Linux -Kernel -Funktionen, um eine effiziente und isolierte Anwendungsumgebung zu bieten. Sein Arbeitsprinzip lautet wie folgt: 1. Der Spiegel wird als schreibgeschützte Vorlage verwendet, die alles enthält, was Sie für die Ausführung der Anwendung benötigen. 2. Das Union File System (UnionFS) stapelt mehrere Dateisysteme, speichert nur die Unterschiede, speichert Platz und beschleunigt. 3. Der Daemon verwaltet die Spiegel und Container, und der Kunde verwendet sie für die Interaktion. 4. Namespaces und CGroups implementieren Container -Isolation und Ressourcenbeschränkungen; 5. Mehrere Netzwerkmodi unterstützen die Containerverbindung. Nur wenn Sie diese Kernkonzepte verstehen, können Sie Docker besser nutzen.

Python gegen JavaScript: Community, Bibliotheken und Ressourcen Python gegen JavaScript: Community, Bibliotheken und Ressourcen Apr 15, 2025 am 12:16 AM

Python und JavaScript haben ihre eigenen Vor- und Nachteile in Bezug auf Gemeinschaft, Bibliotheken und Ressourcen. 1) Die Python-Community ist freundlich und für Anfänger geeignet, aber die Front-End-Entwicklungsressourcen sind nicht so reich wie JavaScript. 2) Python ist leistungsstark in Bibliotheken für Datenwissenschaft und maschinelles Lernen, während JavaScript in Bibliotheken und Front-End-Entwicklungsbibliotheken und Frameworks besser ist. 3) Beide haben reichhaltige Lernressourcen, aber Python eignet sich zum Beginn der offiziellen Dokumente, während JavaScript mit Mdnwebdocs besser ist. Die Wahl sollte auf Projektbedürfnissen und persönlichen Interessen beruhen.

Miniopen CentOS -Kompatibilität Miniopen CentOS -Kompatibilität Apr 14, 2025 pm 05:45 PM

Minio-Objektspeicherung: Hochleistungs-Bereitstellung im Rahmen von CentOS System Minio ist ein hochleistungsfähiges, verteiltes Objektspeichersystem, das auf der GO-Sprache entwickelt wurde und mit Amazons3 kompatibel ist. Es unterstützt eine Vielzahl von Kundensprachen, darunter Java, Python, JavaScript und Go. In diesem Artikel wird kurz die Installation und Kompatibilität von Minio zu CentOS -Systemen vorgestellt. CentOS -Versionskompatibilitätsminio wurde in mehreren CentOS -Versionen verifiziert, einschließlich, aber nicht beschränkt auf: CentOS7.9: Bietet einen vollständigen Installationshandbuch für die Clusterkonfiguration, die Umgebungsvorbereitung, die Einstellungen von Konfigurationsdateien, eine Festplattenpartitionierung und Mini

Bootstrap: Eine kurze Anleitung zu Web -Frameworks Bootstrap: Eine kurze Anleitung zu Web -Frameworks Apr 15, 2025 am 12:10 AM

Bootstrap ist ein von Twitter entwickelter Framework, um schnell reaktionsschnelle, mobile Websites und Anwendungen aufzubauen. 1. Einfache Gebrauchsbilanz und reichhaltige Komponentenbibliotheken machen die Entwicklung schneller. 2. Die riesige Gemeinschaft bietet Unterstützung und Lösungen. 3. Einführen und verwenden Sie Klassennamen, um Stile über CDN zu steuern, z. B. das Erstellen von reaktionsschnellen Gittern. 4.. Anpassbare Stile und Erweiterungskomponenten. 5. Vorteile umfassen eine schnelle Entwicklung und reaktionsschnelles Design, während Nachteile Stilkonsistenz und Lernkurve sind.

See all articles