摘要:混雜著工作室圖片網(wǎng)任務截至今天終于完成了暑假另一個任務把考核任務按照狗書再寫一遍受益匪淺,路途荊棘叢生。。。。
混雜著工作室圖片網(wǎng)任務,截至今天終于完成了暑假另一個任務
把考核任務按照狗書再寫一遍
受益匪淺,路途荊棘叢生。。。。這里主要記錄了增加的功能,更多的可以看源代碼
代碼
在線預覽
Flask上傳文件
我實現(xiàn)的主要思路就是,上傳文件到服務器,然后讀取文件
當然你可以用二進制存進數(shù)據(jù)庫,或者用比較成熟的拓展Flask-Uploads
主要的步驟以前一篇文章寫了 如何實現(xiàn)圖片上傳API
然后你需要定義訪問路由
@main.route("/avatar/") def get_file(filename): return send_from_directory(current_app.config["UPLOAD_FOLDER"],filename)
一開始的UPLOAD_FOLDER沒有定義清楚,加上os.getcwd()獲取當前目錄
UPLOAD_FOLDER= os.getcwd()+"/app/upload/avatar"
如果用的Jinja2模板,在頭像引用處這樣寫就可以了
我這里把頭像地址存到了user數(shù)據(jù)模型中
if current_user.avatar: try: os.remove(os.path.join(current_app.config["UPLOAD_FOLDER"],current_user.avatar)) except OSError: return {"error": u"文件不存在"}使用forgery_py生成測試數(shù)據(jù)
開發(fā)測試的時候經(jīng)常需要大量的數(shù)據(jù),比如下面的用戶模型
shell運行,輸入下面的代碼即可
python manage.py shell >>>User.generate_fake()
@staticmethod def generate_fake(count=100): #數(shù)量100 from sqlalchemy.exc import IntegrityError from random import seed import forgery_py #生成虛擬數(shù)據(jù)所需要的庫 seed() for i in range(count): u = User(username=forgery_py.internet.user_name(True), location=forgery_py.address.city(), about_me=forgery_py.lorem_ipsum.sentence(), password=forgery_py.lorem_ipsum.word()) db.session.add(u) try: db.session.commit() except IntegrityError: db.session.rollback()用profile協(xié)助程序性能優(yōu)化
前輩博客
啟動方式python manage.py profile
@manager.command def profile(length=25, profile_dir=None): from werkzeug.contrib.profiler import ProfilerMiddleware app.wsgi_app = ProfilerMiddleware(app.wsgi_app, restrictions=[length], profile_dir=profile_dir) app.run()定義匿名用戶
定義
from flask_login import AnonymousUserMixin class AnonymousUser(AnonymousUserMixin): def __init__(self): self.username = "游客" login_manager.anonymous_user = AnonymousUser
判斷當前用戶是否是匿名用戶
current_user.is_anonymous() #bool型 if的時候用current_user.is_anonymous
Jinja模板中
{% if current_user.is_authenticated() %} Hi {{ current_user.name }}! {% endif %}AttributeError: "User" object has no attribute "is_active"
User需要繼承UserMixin,并添加一個user_loader
from flask_login import UserMixin class User(db.Model, UserMixin): pass @login_manager.user_loader def load_user(userid): return User.query.get(int(userid))使用markdown同步實現(xiàn)markdown
首先在create_app中初始化PageDown
forms輸入部分定義為PageDownField
from flask_pagedown import PageDown pagedown = PageDown() def create_app(config_name): app = Flask(__name__) app.config.from_object(config[config_name]) pagedown.init_app(app) ...
Jinja2中引入
{% block scripts %} {{ super() }} {{ pagedown.include_pagedown() }} {% endblock %}
模型中為了安全,防止惡意標簽
首先,markdown() 函數(shù)初步把Markdown 文本轉(zhuǎn)換成HTML
然后,把得到的結(jié)果和允許使用的HTML 標簽列表傳給clean() 函數(shù)
clean() 函數(shù)刪除所有不在白名單中的標簽
轉(zhuǎn)換的最后一步由linkify() 函數(shù)完成,這個函數(shù)由Bleach 提供
把純文本中的URL 轉(zhuǎn)換成適當?shù)逆溄?/pre>class Post(db.Modle): .... #處理富文本,將Markdown格式轉(zhuǎn)換為Html @staticmethod def on_changed_body(target, value, oldvalue, initiator): allowed_tags = ["a", "abbr", "acronym", "b", "blockquote", "code", "em", "i", "li", "ol", "pre", "strong", "ul", "h1", "h2", "h3", "p"] target.body_html = bleach.linkify(bleach.clean( markdown(value, output_format="html"), tags=allowed_tags, strip=True)) db.event.listen(Post.body, "set", Post.on_changed_body)#實時監(jiān)聽能記住的大概就這些了,其他的都是很雜的錯誤,不管怎么說,也是次經(jīng)歷了首發(fā)于我的博客用Python+Flask實戰(zhàn)一個實用的留言板Demo
參考鏈接:bestallen的博客
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/40999.html
摘要:在本書中用到的一些服務程序主要有。本節(jié)來分別介紹它們的安裝方法。的安裝是一個輕量級的服務程序,簡單易用靈活,在本書中我們主要用它來做一些服務,本節(jié)我們來了解下它的安裝方式。相關(guān)鏈接官方文檔安裝執(zhí)行完畢之后即可完成安裝。 上一篇文章:Python3網(wǎng)絡爬蟲實戰(zhàn)---5、存儲庫的安裝:PyMySQL、PyMongo、RedisPy、RedisDump下一篇文章:Python3網(wǎng)絡爬蟲實戰(zhàn)-...
摘要:開發(fā)實戰(zhàn)筆記安裝和使用虛擬環(huán)境虛擬環(huán)境是解釋器的一個私有副本,在這個環(huán)境中你可以安裝私有的包,而且不會影響系統(tǒng)中安裝的全局的解釋器。處理和函數(shù)之間關(guān)系的程序稱為路由。例如在請求開始時,我們需要創(chuàng)建數(shù)據(jù)庫連接或認證發(fā)起請求的用戶。 幾天前和同事一起喝酒,大家談到為什么開始讀書這件事。這里所說的讀書不是專業(yè)的書籍,而是一些閑書。結(jié)果發(fā)現(xiàn)原來我們開始讀書的原因很功利。都是因為生活中遇到了困...
摘要:故而總結(jié)如下編成的代碼浪漫的環(huán)境親手制作的禮物注意請將下面的程序員的情人節(jié)禮物換成語言。言歸正傳程序員的情人節(jié)禮物入門之材料構(gòu)思情人節(jié)禮物之設備展示想著在這個移動盛行的時代,再用電腦就不太合適了。 是時候應該反擊了 當我看到@鄢得諼草 的那幾篇黑我黑到體無完膚的#極客愛情# @Phodal 故事的時候,我發(fā)現(xiàn)我竟無言以對?;蛟S,作為一名程序員,我們或多或少都有這樣的共性。 ...
摘要:蠎周刊年度最贊親俺們又來回顧又一個偉大的年份兒包去年最受歡迎的文章和項目如果你錯過了幾期就這一期不會丟失最好的嗯哼還為你和你的準備了一批紀念裇從這兒獲取任何時候如果想分享好物給大家在這兒提交喜歡我們收集的任何意見建議通過來吧原文 Title: 蠎周刊 2015 年度最贊Date: 2016-01-09 Tags: Weekly,Pycoder,Zh Slug: issue-198-to...
閱讀 2719·2021-11-11 16:54
閱讀 2338·2021-10-09 09:44
閱讀 2565·2019-08-30 15:54
閱讀 1945·2019-08-30 11:24
閱讀 1187·2019-08-29 17:03
閱讀 2115·2019-08-29 16:22
閱讀 2095·2019-08-29 13:11
閱讀 1056·2019-08-29 12:14