建设银行网站 无法访问可以免费推广的网站
- 作者: 五速梦信息网
- 时间: 2026年04月20日 10:43
当前位置: 首页 > news >正文
建设银行网站 无法访问,可以免费推广的网站,wordpress宾馆,国内c2c平台有哪些使用 Flask 开发博客 Flask 是一个轻量级的 Web 框架#xff0c;适合小型应用和学习项目。我们将通过 Flask 开发一个简单的博客系统#xff0c;支持用户注册、登录、发布文章等功能。 步骤#xff1a; 安装 Flask 和其他必要库#xff1a; 在开发博客之前#xff0c;首…使用 Flask 开发博客 Flask 是一个轻量级的 Web 框架适合小型应用和学习项目。我们将通过 Flask 开发一个简单的博客系统支持用户注册、登录、发布文章等功能。 步骤 安装 Flask 和其他必要库 在开发博客之前首先需要安装 Flask。可以使用 pip 安装 Flask 和其他依赖 pip install Flask Flask-SQLAlchemy Flask-WTF Flask-Login email-validator 项目结构 项目结构如下 /blog/templatesbase.htmlcreate_post.htmledit_post.htmlindex.htmllayout.htmllogin.htmlregister.htmlpost.html/static/cssstyle.cssapp.pymodels.pyforms.py创建数据库模型 (models.py) 使用 Flask 的 SQLAlchemy 扩展来进行数据库操作。我们首先定义用户和文章的数据库模型。
models.py
from flask_sqlalchemy import SQLAlchemy from datetime import datetime # 导入 datetime from flask_login import UserMixindb SQLAlchemy()class User(UserMixin, db.Model):id db.Column(db.Integer, primary_keyTrue)username db.Column(db.String(80), uniqueTrue, nullableFalse)email db.Column(db.String(120), uniqueTrue, nullableFalse)password db.Column(db.String(120), nullableFalse)date_registered db.Column(db.DateTime, defaultdatetime.utcnow)is_active db.Column(db.Boolean, defaultTrue) # 默认值设置为True表示用户激活def get_id(self):return str(self.id) # 或者返回其他唯一标识符如 email 等posts db.relationship(Post, back_populatesuser, lazyTrue)class Post(db.Model):id db.Column(db.Integer, primary_keyTrue)title db.Column(db.String(100), nullableFalse)content db.Column(db.Text, nullableFalse)date_posted db.Column(db.DateTime, defaultdatetime.utcnow)# 外键关联用户表user_id db.Column(db.Integer, db.ForeignKey(user.id), nullableFalse)# 修改 backref 名称避免与 User 模型中的属性冲突user db.relationship(User, back_populatesposts)def init(self, title, content, user):self.title titleself.content contentself.user user # author 参数应该作为 user 创建 Flask 应用 (app.py) 在 app.py 中初始化 Flask 应用配置数据库处理用户请求和路由。
app.py
from flask import Flask, render_template, url_for, redirect, request, flash from models import db, User, Post from flask_login import LoginManager, login_user, login_required, current_user, logout_user from forms import RegistrationForm, LoginForm, PostForm from datetime import datetimeapp Flask(name) app.config[SECRET_KEY] 123456 app.config[SQLALCHEMY_DATABASE_URI] sqlite:///site.db db.init_app(app)with app.app_context():db.create_all() # 创建数据库表login_manager LoginManager(app) login_manager.login_view loginlogin_manager.user_loader def load_user(user_id):return db.session.get(User, int(user_id))app.route(/) def index():posts Post.query.all()print(current_user.is_authenticated)return render_template(index.html, postsposts)app.route(/register, methods[GET, POST]) def register():form RegistrationForm()if form.validate_on_submit():user User(usernameform.username.data, emailform.email.data, passwordform.password.data)db.session.add(user)db.session.commit()flash(Your account has been created!, success)return redirect(url_for(login))return render_template(register.html, formform)app.route(/login, methods[GET, POST]) def login():form LoginForm()if form.validate_on_submit():user User.query.filter_by(usernameform.username.data).first()if user and user.password form.password.data:login_user(user)return redirect(url_for(index))else:flash(Login Unsuccessful. Please check username and password, danger)return render_template(login.html, formform)app.route(/logout) def logout():logout_user()return redirect(url_for(index))app.route(/post/new, methods[GET, POST]) login_required def new_post():form PostForm()if form.validate_on_submit():post Post(titleform.title.data, contentform.content.data, usercurrent_user)db.session.add(post)db.session.commit()flash(Your post has been created!, success)return redirect(url_for(index))return render_template(create_post.html, titleNew Post, formform)app.route(/post/int:post_id) def post(post_id):post Post.query.get_or_404(post_id)return render_template(post.html, postpost)app.route(/post/edit/int:post_id, methods[GET, POST]) login_required def edit_post(post_id):post Post.query.get_or_404(post_id)# 确保只能编辑自己的博客if post.user ! current_user:flash(You cannot edit this post., danger)return redirect(url_for(index))form PostForm()if form.validate_on_submit():post.title form.title.datapost.content form.content.datadb.session.commit()flash(Your post has been updated!, success)return redirect(url_for(index))# 使用现有的博客数据填充表单elif request.method GET:form.title.data post.titleform.content.data post.contentreturn render_template(edit_post.html, titleEdit Post, formform, postpost)app.route(/post/delete/int:post_id, methods[Get, POST]) def delete_post(post_id):post Post.query.get_or_404(post_id)db.session.delete(post)db.session.commit()flash(Post has been deleted!, success)return redirect(url_for(index)) # 或者返回其他页面if name main:app.run(debugTrue) 创建表单 (forms.py) 使用 Flask-WTF 扩展来创建用户注册、登录和文章发布的表单。
forms.py
from flask_wtf import FlaskForm
from wtforms import StringField, PasswordField, TextAreaField
from wtforms.validators import DataRequired, Length, Email, EqualToclass RegistrationForm(FlaskForm):username StringField(Username, validators[DataRequired(), Length(min2, max20)])email StringField(Email, validators[DataRequired(), Email()])password PasswordField(Password, validators[DataRequired()])confirm_password PasswordField(Confirm Password, validators[DataRequired(), EqualTo(password)])class LoginForm(FlaskForm):username StringField(Username, validators[DataRequired()])password PasswordField(Password, validators[DataRequired()])class PostForm(FlaskForm):title StringField(Title, validators[DataRequired()])content TextAreaField(Content, validators[DataRequired()]) 创建模板 (HTML) 在 templates 文件夹中创建 HTML 模板来展示博客页面。 !– index.html –
{% extends base.html %}
{% block content %}
h1Blog Posts/h1
ul{% for post in posts %}lih2{{ post.title }}/h2p{{ post.content }}/ppsmallPosted on {{ post.date_posted }}/small/p/li{% endfor %}
/ul
{% endblock %}运行应用 启动 Flask 应用 python app.py展示效果
上面最简单的博客就搭建完成了但博主怎么能止步于此呢进一步实现相关的html页面来进一步完善吧尽请期待第二弹。 文学和科学相比的确没什么用处但文学最大的用处也许就是它没有用处
相关文章
-
建设银行网银网站激活WordPress如何更改文章链接
建设银行网银网站激活WordPress如何更改文章链接
- 技术栈
- 2026年04月20日
-
建设银行网银盾不能打开网站百度导航如何设置公司地址
建设银行网银盾不能打开网站百度导航如何设置公司地址
- 技术栈
- 2026年04月20日
-
建设银行网上交管网站桂阳网页定制
建设银行网上交管网站桂阳网页定制
- 技术栈
- 2026年04月20日
-
建设银行网站logo昆明软讯科技网站建设
建设银行网站logo昆明软讯科技网站建设
- 技术栈
- 2026年04月20日
-
建设银行网站查余额市场调研报告500字
建设银行网站查余额市场调研报告500字
- 技术栈
- 2026年04月20日
-
建设银行网站的登录验证程序安全吗网站开发者
建设银行网站的登录验证程序安全吗网站开发者
- 技术栈
- 2026年04月20日
