当前位置: 首页 > wzjs >正文

做网站收费防控措施持续优化

做网站收费,防控措施持续优化,平面设计师必看的网站,马鞍山哪里做网站Flask 功能使用总结与完整示例 一、Flask 核心功能总结 Flask 是轻量级 Web 框架,核心功能包括: 路由系统:通过 app.route 装饰器定义 URL 与函数的映射。模板引擎:默认使用 Jinja2,支持动态渲染 HTML。请求处理&…

Flask 功能使用总结与完整示例

一、Flask 核心功能总结

Flask 是轻量级 Web 框架,核心功能包括:

  • 路由系统:通过  @app.route  装饰器定义 URL 与函数的映射。
  • 模板引擎:默认使用 Jinja2,支持动态渲染 HTML。
  • 请求处理:获取请求参数、表单数据、文件上传等。
  • 响应处理:返回 JSON、HTML、重定向等。
  • 会话管理:通过  session  对象存储用户状态。
  • 扩展支持:可集成 Flask-SQLAlchemy(数据库)、Flask-RESTful(API)等扩展。

二、完整示例:简易待办事项应用

以下是一个包含用户认证、待办事项管理的 Flask 应用示例:

from flask import Flask, render_template, request, redirect, url_for, session, jsonify
from flask_sqlalchemy import SQLAlchemy
import datetime
import uuid

初始化应用

app = Flask(name)
app.secret_key = ‘your_secret_key’ # 用于会话加密
app.config[‘SQLALCHEMY_DATABASE_URI’] = ‘sqlite:///todo_app.db’
db = SQLAlchemy(app)

数据库模型

class User(db.Model):
id = db.Column(db.Integer, primary_key=True)
username = db.Column(db.String(80), unique=True, nullable=False)
password = db.Column(db.String(120), nullable=False)
todos = db.relationship(‘Todo’, backref=‘user’, lazy=True)

class Todo(db.Model):
id = db.Column(db.Integer, primary_key=True)
title = db.Column(db.String(100), nullable=False)
description = db.Column(db.Text)
due_date = db.Column(db.DateTime)
completed = db.Column(db.Boolean, default=False)
user_id = db.Column(db.Integer, db.ForeignKey(‘user.id’), nullable=False)

创建数据库表

with app.app_context():
db.create_all()

路由:首页 - 重定向到登录页

@app.route(’/’)
def index():
if ‘user_id’ in session:
return redirect(url_for(‘todo_list’))
return redirect(url_for(‘login’))

路由:登录页

@app.route(’/login’, methods=[‘GET’, ‘POST’])
def login():
if request.method == ‘POST’:
username = request.form.get(‘username’)
password = request.form.get(‘password’)

    user = User.query.filter_by(username=username).first()if user and user.password == password:  # 实际应用中应使用密码哈希session['user_id'] = user.idreturn redirect(url_for('todo_list'))return render_template('login.html', error='用户名或密码错误')
return render_template('login.html')

路由:注册页

@app.route(’/register’, methods=[‘GET’, ‘POST’])
def register():
if request.method == ‘POST’:
username = request.form.get(‘username’)
password = request.form.get(‘password’)

    # 检查用户是否存在if User.query.filter_by(username=username).first():return render_template('register.html', error='用户名已存在')# 创建新用户new_user = User(username=username, password=password)db.session.add(new_user)db.session.commit()return redirect(url_for('login'))
return render_template('register.html')

路由:待办事项列表

@app.route(’/todos’)
def todo_list():
if ‘user_id’ not in session:
return redirect(url_for(‘login’))

user = User.query.get(session['user_id'])
todos = Todo.query.filter_by(user_id=session['user_id']).all()
return render_template('todo_list.html', user=user, todos=todos)

路由:添加待办事项

@app.route(’/todos/add’, methods=[‘GET’, ‘POST’])
def add_todo():
if ‘user_id’ not in session:
return redirect(url_for(‘login’))

if request.method == 'POST':title = request.form.get('title')description = request.form.get('description')due_date_str = request.form.get('due_date')due_date = Noneif due_date_str:due_date = datetime.datetime.strptime(due_date_str, '%Y-%m-%d')new_todo = Todo(title=title,description=description,due_date=due_date,user_id=session['user_id'])db.session.add(new_todo)db.session.commit()return redirect(url_for('todo_list'))return render_template('add_todo.html')

路由:更新待办事项状态

@app.route(’/todos/int:todo_id/toggle’, methods=[‘POST’])
def toggle_todo(todo_id):
if ‘user_id’ not in session:
return jsonify({‘status’: ‘error’, ‘message’: ‘未登录’})

todo = Todo.query.filter_by(id=todo_id, user_id=session['user_id']).first()
if not todo:return jsonify({'status': 'error', 'message': '待办事项不存在'})todo.completed = not todo.completed
db.session.commit()
return jsonify({'status': 'success', 'completed': todo.completed})

路由:登出

@app.route(’/logout’)
def logout():
session.clear()
return redirect(url_for(‘login’))

启动应用

if name == ‘main’:
app.run(debug=True)

三、模板文件示例

假设模板文件存放在  templates  目录下:

  1. login.html
登录 - 待办事项应用

登录

{% if error %}
{{ error }}
{% endif %}

登录 注册新账户  
  1. todo_list.html
待办事项 - {​{ user.username }}

我的待办事项

添加待办 登出
<ul>{% for todo in todos %}<li><input type="checkbox" onchange="toggleTodo({{ todo.id }})" {% if todo.completed %}checked{% endif %}><span style="text-decoration: {% if todo.completed %}line-through{% endif %}">{{ todo.title }}</span>{% if todo.due_date %}<span style="color: {% if todo.due_date < now and not todo.completed %}red{% else %}green{% endif %}">(截止: {{ todo.due_date.strftime('%Y-%m-%d') }})</span>{% endif %}</li>{% else %}<li>暂无待办事项,点击"添加待办"创建</li>{% endfor %}
</ul><script>function toggleTodo(todoId) {fetch(`/todos/${todoId}/toggle`, {method: 'POST'}).then(response => response.json()).then(data => {if (data.status !== 'success') {alert(data.message);}});}
</script>
 

四、功能说明

1. 用户认证:

  • 注册新用户并存储到数据库。
  • 登录后通过会话(session)保持用户状态。
    2. 待办事项管理:
  • 列表展示:显示所有待办事项及完成状态。
  • 添加功能:支持标题、描述、截止日期。
  • 状态更新:通过 AJAX 异步切换完成状态。
    3. 技术要点:
  • 路由设计:RESTful 风格 URL。
  • 数据库操作:使用 SQLAlchemy ORM。
  • 模板渲染:Jinja2 动态生成 HTML。
  • 会话管理:Flask 内置 session 对象。

五、运行与扩展

1. 运行方式:
pip install flask flask-sqlalchemy
python app.py

访问  http://127.0.0.1:5000  使用应用。
2. 扩展方向:

  • 添加密码哈希(如 bcrypt)增强安全性。
  • 集成 Flask-RESTful 提供 API 接口。
  • 使用 Flask-Migrate 管理数据库迁移。
  • 添加文件上传、用户头像等功能。

通过以上示例,可快速掌握 Flask 的核心功能和项目结构,适用于中小型 Web 应用开发。

http://www.dtcms.com/wzjs/358648.html

相关文章:

  • 网站站外推广方式有哪些seo是什么意思知乎
  • 前端做网站难吗网站优化资源
  • 黑龙江期刊网站制作整站优化全网营销
  • 网络运维工程师自我介绍seo排名软件价格
  • wordpress 开发 pdf广州百度网站排名优化
  • 短租网站那家做的好营销方案怎么写
  • 销售口才900句结构优化设计
  • 网络营销推广的主要目标长沙市seo百度关键词
  • 国外网站建设 网站苏州seo服务
  • 搭建一个网站的基本流程网络营销软文范例500
  • 做按摩网站优化推广职业技能培训平台
  • 歙县电子商务网站建设培训网站推广
  • 绍兴网站建设专业的公司app开发公司哪家好
  • 天津做网站哪个公司好做seo需要投入的成本
  • 音乐播放器网站怎么做seo1域名查询
  • 美发网站怎么做如何让关键词排名靠前
  • APP网站开发私人订制seo网站关键词优化方式
  • 营口建网站电商软文广告经典案例
  • 买完域名后怎么搭建个人网站网络推广外包哪家好
  • 网站做多久流量百度广告推广平台
  • 电子商务网站排名百度一直不收录网站
  • 有哪些可以在网上做兼职的网站网络推广费用大概价格
  • 天津智能网站建设价位seo实战优化
  • 政府网站建设情况自查报告关键词优化流程
  • 杭州市下城区建设厅网站电商培训机构靠谱吗
  • 蜗牛星际做网站seo排名优化软件免费
  • 做网站用香港服务器好吗推广方案应该有哪些方面
  • 建站开始的前6个月多少外链最合适个人推广网站
  • 台州市环保局网站开发区网络搭建的基本流程
  • 如何建立自己的商城网站汽车品牌推广策划方案