《FlaskWeb开发:基于Python的Web应用开发实战》笔记
生活随笔
收集整理的這篇文章主要介紹了
《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實現頁面跳轉
通用視圖函數(用戶登錄驗證過程)
總結
以上是生活随笔為你收集整理的《FlaskWeb开发:基于Python的Web应用开发实战》笔记的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【Python】校选课 第四周作业 py
- 下一篇: 【Python】Flask框架系列(四)