zoukankan      html  css  js  c++  java
  • python+mysql+flask创建一个微博应用(持续更新)

    微博应用的结构:

    • 用户管理,包括登录管理,会话,用户角色,个人档案及用户头像。
    • 数据库管理,包括数据库迁移处理。
    • Web表单支持,包括字段检验和用于防止垃圾邮件的验证码功能。
    • 大数据的分页功能。
    • 全文检索。
    • 用户邮件通知

    安装虚拟环境

    自己上网搜索吧,这个就不多说了,其实我很烦安装虚拟环境的,在自己的电脑上搞都是直接insert。。。

    安装的py模块:

    flaskscriptspip install flask
    flaskScriptspip install flask-login
    flaskScriptspip install flask-openid
    flaskScriptspip install flask-sqlalchemy
    flaskScriptspip install sqlalchemy-migrate
    flaskScriptspip install flask-whooshalchemy
    flaskScriptspip install flask-wtf
    flaskScriptspip install flask-babel
    flaskScriptspip install flup
    开始我们的旅程吧
    创建程序的结构(想到什么就加什么,一时还没想好怎么分区呢。。。)
    microblog-app
          __init__.py
          views.py
          -static
          -templats
         run.py


    初始化app\__init__.py

    from flask import Flask
    
    app = Flask(__name__)
    
    from app import views

    编写试图函数

    # appviews.py
    
    from app import app
    
    
    @app.route('/')
    @app.route('/index')
    def index():
        pass

    下面,使web应用能完全运行的最后一步就是创建一个能启动我们开发的这个应用web服务器的脚本。

    #sicroblog
    un.py
    
    from app import app
    
    
    if __name__ == "__main__":
        app.run(debug=True)

    debug =True 开启调试模式

    这时候你就可以运行程序,在浏览器中打开http:\127.0.0.1:5000,虽然什么都没有出现,但是你已经成功第一步了

     制作模板系统

    为了保持业务逻辑和表现的分离,可以使用模板使你的网站结构将会组织的更好。

    先来创建一个基础模板(templatesase.html)吧

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        {%if title%}
        <title>{{title}}-microblog</title>
        {%else%}
        <title>Microblog</title>
        {%endif%}
    </head>
    <body>
        
        <div>microblog: <a href="/index">Home</a></div>
        <hr>
        {%block content %}{%endblock %}
    </body>
    </html>

    之后的模板都可以通过继承的方式来引用你的base.html。

    继承的关键是{%extends “base.html”%}

    例如:index.html模板

    {% extends "base.html" %}
    {% block content %}
    <h1>Hi, {{user.nickname}}!</h1>
    {% for post in posts %}
    <div><p>{{post.author.nickname}} says: <b>{{post.body}}</b></p></div>
    {% endfor %}
    {% endblock %}

    下面到了修改我们的试图(appviews.py)的时候

    from app import app
    from flask import render_template
    # appviews.py
    @app.route('/')
    @app.route('/index')
    def index():
        user = {'nickname':'liwanning'}
        posts =[
            {
                'author':{'nickname':'憨豆豆'},
                'body':"今天是美丽的一天!"
             },
            {
                'author': {'nickname': '小会计'},
                'body': "要不要来场甜蜜的约会?"
            }
    
        ]
        return render_template('index.html',title = 'Home',user = user,
                                            posts = posts)

    运行你的程序看看!!

  • 相关阅读:
    MySQL 删除有外键约束的表数据
    Python 类装饰器解析
    保持SSH连接的linux服务器不断线
    数字货币交易所常用概念
    Python f-string
    Linux sed命令
    CAS机制详解
    MySQL缓存机制
    PHP网络请求优化
    Java三大特性---继承
  • 原文地址:https://www.cnblogs.com/zuoshoushizi/p/7447566.html
Copyright © 2011-2022 走看看