flask知識點


app.config['JSON_AS_ASCII'] = False #中文轉換
@app.route('/user/<user>')動態路由,經過函數傳參
jsonify() 轉換成頁面能看懂得json字符串
redirct('') 跳轉路由地址
redirct(url_for(函數名)) 跳轉函數名
abort(404) 拋出異常
'{}'.format(函數) 格式化格式 動態傳參html

max_age = 3600 設置過時時間 秒
ck = make_response() 生成一個複雜返回存儲給瀏覽器頁面
ck.set_cookie() 存儲到cookie裏
user = request.cookies.get('user_name') 請求獲取cookies中的數據
app.secret_key = '1811' 密鑰
session['user_id'] = id 存儲到sessio中
user = session.get('user_id') 獲取session中的數據
*
rs = jsonify(msg) 改成utf8的標識,顯示中文
rs.headers['Conten-Type'] = 'application/json;charset=utf-8'
*
**
from flask_script import Manager
manage = Manager(app)
manage.run() 在黑窗口中跑py文件
python 文件名.py runserver *--host ip地址 --port 端口號*
**python

render_template(html.html) 指定模板名
app=Flask(__name__,template_folder='../templates') 指定路徑位置 py文件必須與templates平級
| 裝飾器
{% filter () %} 可修改這中間的全部形態 {% endfilter %}
{% if %}_{% elif %}_{% else %}_{% endif %} 判斷格式,又開始結束
{% for %}_{% endfor %} for循環
{{ loop.index }} 序號,從1開始 加0從0開始mysql

{% extends '父模板名.html' %} 指定子模板繼承父
{% block (名) %} {% endblock %} 模板繼承部分
{% include '父模板名.html' %} 包含就是把網頁總體拿過來
{% for i in get_flashed_messages() %} 模板中閃現
flash() py中閃現
<script> alert('{{變量名}}') </script> 彈框輸出jquery

from flask_sqlalchemy import SQLAlchemy 導包鏈接數據庫
app.config['SQLALCHEMY_DATABASE_URI'] = 'mysql+pymysql://root:@127.0.0.1:3306/book'
數據庫鏈接 XXX : //用戶名 : 密碼: @數據庫IP : 端口/庫名
app.config['SQLALCHEMY_TRACK_MODIFICATIONS'] = True
動態追蹤修改設置,如未設置只會提醒警告
app.config['SQLALCHEMY_ECHO'] = True 查詢時顯示原始SQL語句
db = SQLAlchemy(app) db用來操做數據庫,並把自定義模型類關聯
class Author(db.Model): db.Model 調用db
__tablename__ = 'author' 修改表名
id = db.Column(db.Integer) 建字段
db.create_all() 建立數據庫表
db.drop_all() 刪除數據庫表
books = db.relationship('Books類名',backref = '自表名author',lazy = 'dynamic')
relationship 創建關係 backref=''反向查找 lazy = 'dynamic 動態加載
def __str__(self): return str(self.id) + '|' + self.name 轉換成字符串
book_list = db.session.execute('select * from books') 支持原生sql語句 循環遍歷
a1 = Author.query.all() 查看錶中全部數據 query.all() query 至關於 select 循環遍歷
a2 = Author.query.filter(Author.name == '李四') 條件查詢 filter 至關於 where 語句 循環遍歷
.first() 加在最後,返回查詢第一條
from sqlalchemy import and_,not_,or_ 導包 或 與 非
a4 = Author.query.filter(and_(Author.name == '李四',Author.id == 1)).first 與 and_
a5 = Author.query.filter(or_(Author.name == '李四',Author.id ==1)) 或 or_ 循環遍歷
a6 = Author.query.filter(not_(Author.name == '李四')) 非 not_ 循環遍歷
a7 = Author.query.filter(Author.name == '張三').first() for i in a7.books:一對多查詢 正向查找,根據做者找書籍
b1 = Books.query.filter(Books.id == 1).first() print(b1.author) 反向查找,根據書籍找做者
對數據庫中的數據有改變的語句,都要進行 db.session commit()
a8 = Author(name='王五') db.session.add(a8) 添加一條數據
a9 = Author() a9.name = '趙六1' db.session.add_all([a9,a10,a11]) 添加一張表 多條數據
a12 = Author(name='劉能') b1 = Books(name='鄉村愛情1') a12.books = [b1,b2,b3] db.session.add(a12) 一對多添加數據 同時添加做者和書籍
a13 = Author.query.filter(Author.name == '劉能').first() a13.name = '趙四' 修改數據
a14 = Author.query.filter(Author.name == '趙六1').first() db.session.delete(a14) 刪除數據
a15 = Author.query.filter(Author.name == '趙四').first() a15.books.delete() 一對多刪除sql

{% for message in get_flashed_messages %} 前臺顯示閃現內容
post 提交方式取值 request.form.get('user')
get 提交方式取值 request.args.get('user')
from flask_migrate import Migrate,MigrateCommand 數據庫遷移導包
from flask_script import Manager 黑窗口導包
migrate = Migrate(app,db) 1將數據庫遷移到黑窗口中 更新數據庫表結構
manager.add_command('db',MigrateCommand) 2將數據庫遷移到黑窗口中 更新數據庫表結構
數據庫遷移操做順序
1.python 文件 db init 建文件夾migrations
2.python 文件 db migrate -m"版本名(註釋)"
3.python 文件 db upgrade 而後觀察表結構
主表:cascade='all, delete-orphan', passive_deletes=True
子表: ondelete='CASCADE' 關聯刪除數據庫

<script src="../../static/js/jquery-3.3.1.min.js"></script> 導入jQuery
console.log($('.one').val()) id選擇器 val() 獲取value值
console.log($('#cla').val()) class選擇器
$('#one').val('123') 控件賦值
$('#btn').click(function () { $('#one').val('修改內容') }) 按鈕點擊事件
parseInt() 轉換成int類型
def to_dict(self): 轉換成字典
window.location.href='/user/login'; 前臺跳轉地址的方法
colspan="6" 合併單元格 align="right" 靠右顯示
<style>ul{ list-style:none;消除黑點 }
ul li{display:block;變塊 margin-right:10px;邊距 float:left;靠左}json

from modules.admin import admin_blue 導入藍圖包
app.register_blueprint(admin_blue,url_prefix='/admin')註冊藍圖,指定藍圖
admin_blue = Blueprint('admin',__name__) 設置藍圖flask

import logging 導包 日誌配置
from logging.handlers import RotatingFileHandler瀏覽器

from werkzeug.security import generate_password_hash,check_password_hash 密碼加密 (生成)(比較)cookie

上傳圖片的表單,須要在form中添加: enctype="multipart/form-data" method="post"
from utils.captcha.captcha import captcha 生成驗證碼圖片
type='file' 上傳文件
.lower() 忽略大小寫

window. js跳轉 ######

img = request.files.get('avatar') files 獲取文件

相關文章
相關標籤/搜索