日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

      歡迎訪問 生活随笔!

      生活随笔

      當前位置: 首頁 > 编程语言 > python >内容正文

      python

      《FlaskWeb开发:基于Python的Web应用开发实战》笔记

      發布時間:2024/2/28 python 28 豆豆
      生活随笔 收集整理的這篇文章主要介紹了 《FlaskWeb开发:基于Python的Web应用开发实战》笔记 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
      開源庫的cdn加速

      可以在這里直接搜索復制script鏈接

      https://www.bootcdn.cn/


      requirements.txt文件的生成與使用

      生成requirements文件:$ pip freeze >requirements.txt
      安裝或升級包后,最好更新這個文件

      如果你要創建這個虛擬環境的完全副本,可以創建一個新的虛擬環境,并在其上運行以下
      命令:
      $ pip install -r requirements.txt


      摘自 《FlaskWeb開發:基于Python的Web應用開發實戰》配套代碼示例

      import os from flask import Flask, render_template, session, redirect, url_for from flask_bootstrap import Bootstrap from flask_moment import Moment from flask_wtf import FlaskForm from wtforms import StringField, SubmitField from wtforms.validators import DataRequired from flask_sqlalchemy import SQLAlchemybasedir = os.path.abspath(os.path.dirname(__file__))app = Flask(__name__) app.config['SECRET_KEY'] = 'hard to guess string' app.config['SQLALCHEMY_DATABASE_URI'] ='mysql+pymysql://root:g67108864@127.0.0.1:3306/flask?charset=utf8' app.config['SQLALCHEMY_TRACK_MODIFICATIONS'] = Falsebootstrap = Bootstrap(app) moment = Moment(app) db = SQLAlchemy(app)class Role(db.Model):__tablename__ = 'roles'id = db.Column(db.Integer, primary_key=True)name = db.Column(db.String(64), unique=True)users = db.relationship('User', backref='role', lazy='dynamic')def __repr__(self):return '<Role %r>' % self.nameclass User(db.Model):__tablename__ = 'users'id = db.Column(db.Integer, primary_key=True)username = db.Column(db.String(64), unique=True, index=True)role_id = db.Column(db.Integer, db.ForeignKey('roles.id'))def __repr__(self):return '<User %r>' % self.usernameclass NameForm(FlaskForm):name = StringField('What is your name?', validators=[DataRequired()])submit = SubmitField('Submit')@app.errorhandler(404) def page_not_found(e):return render_template('404.html'), 404@app.errorhandler(500) def internal_server_error(e):return render_template('500.html'), 500@app.route('/', methods=['GET', 'POST']) def index():form = NameForm()if form.validate_on_submit():user = User.query.filter_by(username=form.name.data).first()if user is None:user = User(username=form.name.data)db.session.add(user)db.session.commit()session['known'] = Falseelse:session['known'] = Truesession['name'] = form.name.datareturn redirect(url_for('index'))return render_template('index.html', form=form, name=session.get('name'),known=session.get('known', False))# db.create_all() # # admin_role = Role(name='Admin') # mod_role = Role(name='Moderator') # user_role = Role(name='User') # user_john = User(username='john', role=admin_role) # user_susan = User(username='susan', role=user_role) # user_david = User(username='david', role=user_role) # # db.session.add(admin_role) # db.session.add(mod_role) # db.session.add(user_role) # db.session.add(user_john) # db.session.add(user_susan) # db.session.add(user_david) # # db.session.commit()if __name__ == '__main__':app.run(debug=True)

      這個成功在數據庫建表

      from flask import Flask from app import db from flask_sqlalchemy import SQLAlchemyfrom flask_login import UserMixinapp = Flask(__name__) app.config['SECRET_KEY'] = 'hard to guess string' app.config['SQLALCHEMY_DATABASE_URI'] ='mysql+pymysql://root:g67108864@127.0.0.1:3306/flask1?charset=utf8' app.config['SQLALCHEMY_TRACK_MODIFICATIONS'] = Falsedb = SQLAlchemy(app)class Role(db.Model):__tablename__ = 'roles'id = db.Column(db.Integer, primary_key=True)name = db.Column(db.String(64), unique=True)users = db.relationship('User', backref='role', lazy='dynamic')class User(UserMixin, db.Model):__tablename__ = 'users'id = db.Column(db.Integer, primary_key=True)email = db.Column(db.String(64), unique=True, index=True)username = db.Column(db.String(64), unique=True, index=True)role_id = db.Column(db.Integer, db.ForeignKey('roles.id'))password_hash = db.Column(db.String(128))db.create_all()

      ctrl+shift+f 全局字符串搜索


      os.environ.get()的用法


      使用next實現頁面跳轉


      通用視圖函數(用戶登錄驗證過程)

      @auth.route('/login', methods=['GET', 'POST']) def login():form = LoginForm()if form.validate_on_submit():user = User.query.filter_by(email=form.email.data.lower()).first()if user is not None and user.verify_password(form.password.data):login_user(user, form.remember_me.data)next = request.args.get('next')if next is None or not next.startswith('/'):next = url_for('main.index')return redirect(next)flash('Invalid email or password.')return render_template('auth/login.html', form=form)

      總結

      以上是生活随笔為你收集整理的《FlaskWeb开发:基于Python的Web应用开发实战》笔记的全部內容,希望文章能夠幫你解決所遇到的問題。

      如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。