python-flask入门

这篇博客介绍了Python Flask的基本用法,包括HTML中-block的使用、在application.py添加变量到HTML、条件判断、引用CSS样式、数据库操作以及Bootstrap的引用。通过实例展示了Flask框架创建动态网页的过程。
摘要由CSDN通过智能技术生成

超基础flask

from flask import Flask, render_template, request
from pymongo import MongoClient
app = Flask(__name__)
@app.route('/home/<int:name>')  #定义路由
def hello(name):
    return "hello world"+ str(name)
if __name__== "__main__":
    app.run(debug=True)

结果如下
在这里插入图片描述
或者网址里面可以包括多个变量

from flask import Flask, render_template, request
from pymongo import MongoClient
app = Flask(__name__)
@app.route('/')
def index():
    return render_template("index.html")  #返回index.html的内容

以下为index.html的内容

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
 <h1>home page body</h1>
</body>
</html>

在浏览器输入网址以后回车出现如下:这里截图有误应该是homepagebody,可能是截错了

在这里插入图片描述

-block的使用

在html里面添加block 的用法可以使得其他index页面直接对block里面的内容进行引用
例如:在base.html里面添加block

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    {% block head %} #block命名为head,是一对,有开始有结束
    {%endblock%}
</head>
<body>
{% block body %} 
    {%endblock%}
</body>
</html>

在index.html里面进行引用

{%extends 'base.html' %}\
<!--#表示继承base.html里面html相关的格式-->
{%block head%}
<title>Home</title>
<!--#网址标题为变为home-->
{%endblock %}

{%block body%}
<h1>home page</h1>
{%endblock %}

在这里插入图片描述

在application.py添加变量在html实现

app = Flask(__name__)

all_posts=[
    {
        'title':'posts1',
        'content':'this is the content of post1.lalalala'
    },
    {
        'title':'posts2',
        'content':'this is the content of post1.lalalala'
    }
] #创建posts字典

在index.html里面显示字典的内容
需要注意python语句在HTML的实现方式

  • for循环,{%for%}{%endfor%} 且endfor之间无空格
<title>posts</title>
<!--#网址标题为变为home-->
{%endblock %}

{%block body%}
<h1>All posts</h1>
    {%for post in posts %} <!--posts 来自于main.py里面的字典posts-->
        <h2>{{post.title }}</h2>
        <p>{{post.content}}</p>
    {%endfor%}<!--for语句需要进行缩进,在block里面-->

{%endblock %}

显示效果如下:
在这里插入图片描述

HTML里面使用ifelse进行判断

HTML需要对变量进行判断是否寻找。if的语法如下

{%block body%}
<h1>All posts</h1>

    {%for post in posts %} <!--posts 来自于main.py里面的字典posts-->
        <h2>{{post.title }}</h2>
        <h3>{{post.author}}</h3>
        {% if post.author%}
            <h3> by:{{post.author}}</h3>
        {% else %}
            <h3>by:N/A</h3>
        {% endif %}
        <p>{{post.content}}</p>
    {%endfor%}
{%endblock %}

效果如下:
在这里插入图片描述

在html里面如何引用css的样式

css样式如下

body{
font-family:Helvetica;
}

base.html里面的引用如下

<!--    <link rel="stylesheet" href="static/css/main.css"#对CSS进行引用> -->
    <link rel="stylesheet" href="{{url_for('static',filename='css/main.css')}}">

这两种引用方式都会起作用,显示效果如下,字体改变
在这里插入图片描述

flask 里面创建数据库进行增删改查

这里只显示一部分需要在pycharm里面写的代码,对于数据的插入是需要在终端执行的略过

app.config['SQLALCHEMY_DATABASE_URI'] = 'sqlite:///posts.db'
db = SQLAlchemy(app)

class BlogPost(db.Model):
    id = db.Column(db.Integer, primary_key=True)
    title = db.Column(db.String(100), nullable=False)
    content = db.Column(db.Text, nullable=False)
    author = db.Column(db.String(20), nullable=False, default='N/A')
    date_posted = db.Column(db.DateTime, nullable=False, default=datetime.utcnow) #创建数据库BlogPost

flask里面如何引用boostrap

在base.html页面引入boostrap和JS样式
1.通过查找官网获取相应的样式
https://getbootstrap.com/docs/5.0/examples/navbar-static/#
在这里插入图片描述
根据关键词搜索,比如我想要引用其中网页的导航栏,我会输入nav关键词,查找nav相关的样式复制粘贴到base.html里面
同样的在其他html页面的{% block body %}里面直接引用相应的模板bootstrap样式也是可以,如下效果
在这里插入图片描述
对于网页部分样式见下篇分享

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值