摘要:側邊欄選用提到的。將改成來訪問的形式組織代碼出現循環的問題往往意味著代碼的布局有問題,可以合并或者分離競爭資源。分離的話就是把需要的資源提取到一個第三方文件去??傊褪菍⒀h變成單向。對于周期性任務缺一不可。其他任務可僅運行。
1、bootstrap代碼片段:
如果你沒有藝術細胞,偷懶的方法就是到這上面去找,比如登錄框界面等。
側邊欄選用:http://www.designerslib.com/b...提到的http://bootsnipp.com/fullscre...。
其他一些資源:
w3schools-howto
一個比較炫的html模板(雖然最后沒有采用)
bootstrap主題
在css當中增加上:
html, body{ margin:0; height:100%; }3、Alembic migration失敗,Sqlite lack of ALTER support解決辦法:
在env.py中設置render_as_batch=True
context.configure( connection=connection, target_metadata=target_metadata, render_as_batch=True )4、markdown擴展:
http://pythonhosted.org/Markd...
比較有用的
Table of Contents(toc)、
CodeHilite(代碼高亮)、
Meta-Data(文件前面可以添加元數據,比如標題,作者等)、
New Line to Break(換行即新行,而不是像原生markdown那樣得換兩行)、
Tables(表格插件)
Flask request,g,session的實現原理
深入 Flask 源碼理解 Context
Flask Session超時設置
默認情況下,flask session在你關閉瀏覽器的時候失效。你可以通過設置permanent session來改變這一行為。
from datetime import timedelta from flask import session, app @app.before_request def make_session_permanent(): session.permanent = True app.permanent_session_lifetime = timedelta(minutes=30)
默認情況下,permanent_session_lifetime是31天。
6、關于SQLAlchemy:SQLAlchemy 使用經驗
SqlAlchemy query many-to-many relationship
class Restaurant(db.Model): ... dishes = db.relationship("Dish", secondary=restaurant_dish, backref=db.backref("restaurants"))
然后檢索所有的dishes for a restaurant, you can do:
x = Dish.query.filter(Dish.restaurants.any(name=name)).all()
產生類似如下SQL語句:
SELECT dish.* FROM dish WHERE EXISTS ( SELECT 1 FROM restaurant_dish WHERE dish.id = restaurant_dish.dish_id AND EXISTS ( SELECT 1 FROM restaurant WHERE restaurant_dish.restaurant_id = restaurant.id AND restaurant.name = :name ) )7、解決循環import的問題思路
1.延遲導入(lazy import)
即把import語句寫在方法或函數里面,將它的作用域限制在局部。
這種方法的缺點就是會有性能問題。
2.將from xxx import yyy改成import xxx;xxx.yyy來訪問的形式
3.組織代碼
出現循環import的問題往往意味著代碼的布局有問題,可以合并或者分離競爭資源。合并的話就是都寫到一個文件里面去。分離的話就是把需要import的資源提取到一個第三方文件去??傊褪?將循環變成單向。
具體解決方案后續文章再貼代碼
Good logging practice in Python
How do I check if a variable exists?
To check the existence of a local variable:
if "myVar" in locals(): # myVar exists.
To check the existence of a global variable:
if "myVar" in globals(): # myVar exists.
To check if an object has an attribute:
if hasattr(obj, "attr_name"): # obj.attr_name exists. if("attr_name" in dir(obj)): pass
還有一個不是很優雅地方案,通過捕獲異常的方式:
try: myVar except NameError: myVar = None # Now you"re free to use myVar without Python complaining.9、關于Git與Github
How do I delete a Git branch with TortoiseGit
為什么給GIT庫打TAG不成功
如何修改github上倉庫的項目語言?
項目放在github,是不是經常被識別為javascript項目?知乎這篇問答給出了答案。
問題原因:
github 是根據項目里文件數目最多的文件類型,識別項目類型.
解決辦法:
項目根目錄添加 .gitattributes 文件, 內容如下 :
*.js linguist-language=python
作用: 把項目里的 .js 文件, 識別成 python 語言.
10、關于IDE的:Indexing excluded directories in PyCharm
pycharm convert tabs to spaces automatically
periodic task for celery sent but not executed
這個由于我沒仔細看官方文檔,搞了好久。Celery的周期性任務scheduler需要配置beat和運行beat進程,但是僅僅運行beat進程可以嗎?不行!我就是這里被坑了。還得同時運行一個worker。也就是說beat和worker都需要通過命令行運行。對于周期性任務beat缺一不可。其他任務可僅運行worker。
如果采用gunicorn命令行的形式:-e選項
gunicorn -w 4 -b 127.0.0.1:4000 -k gevent -e aliyun_api_key=value,SECRET_KEY=mysecretkey app:app
如果采用gunicorn.conf.py文件的形式:raw_env
import multiprocessing bind = "127.0.0.1:4000" workers = multiprocessing.cpu_count() * 2 + 1 worker_class="gevent" proc_name = "mdwiki" user = "nginx" chdir="/opt/mdwiki" #daemon=False #group = "nginx" loglevel = "info" #errorlog = "/home/myproject/log/gunicorn.log" #accesslog= raw_env = [ "aliyun_api_key=value", "aliyun_secret_key=value", "MAIL_PASSWORD=value", "SECRET_KEY=mysecretkey", ] #ssl #keyfile= #certfile= #ca_certs=
如果采用supervisor配置環境變量
[program:mdwiki] environment=SECRET_KEY=value,aliyun_api_key=value,aliyun_secret_key=value,MAIL_PASSWORD=value command=/usr/bin/gunicorn -n mdwiki -w 4 -b 127.0.0.1:4000 -k gevent app:app directory=/opt/mdwiki user=nginx autostart=true autorestart=true redirect_stderr=true
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/91245.html
摘要:側邊欄選用提到的。將改成來訪問的形式組織代碼出現循環的問題往往意味著代碼的布局有問題,可以合并或者分離競爭資源。分離的話就是把需要的資源提取到一個第三方文件去??傊褪菍⒀h變成單向。對于周期性任務缺一不可。其他任務可僅運行。 1、bootstrap代碼片段: 如果你沒有藝術細胞,偷懶的方法就是到這上面去找,比如登錄框界面等。側邊欄選用:http://www.designerslib....
摘要:本文主要針對小程序無聊廣場的前端開發內容做總結,記錄常見的一些老生常談的進階手法,對小程序中的動畫音頻等踩坑做出解決方案。 背景 一個交互不復雜,對刷新頻率和動畫效果要求不高的小游戲,不需要使用canvas主導的解決方案,使用dom操作一樣可以完成。節省了cocos creater的學習成本,值得一試。本文主要針對小程序無聊廣場的前端開發內容做總結,記錄常見的一些老生常談的進階手法,對...
摘要:是一款系統,可以作為個人或小型團隊的知識庫管理系統。再加上目前開始學習與爬蟲。技術選型作為新手,義不容辭為什么就為了原生支持開玩笑因為代表了的未來,而且越來越多的庫已經遷移到了,沒有什么理由不選擇它。 mdwiki是一款markdown wiki系統,可以作為個人或小型團隊的知識庫管理系統。項目地址:本系列文章最后一篇給出(需要時間整理和測試) 為什么我要開發mdwiki? 目前本人的...
摘要:是一款系統,可以作為個人或小型團隊的知識庫管理系統。再加上目前開始學習與爬蟲。技術選型作為新手,義不容辭為什么就為了原生支持開玩笑因為代表了的未來,而且越來越多的庫已經遷移到了,沒有什么理由不選擇它。 mdwiki是一款markdown wiki系統,可以作為個人或小型團隊的知識庫管理系統。項目地址:本系列文章最后一篇給出(需要時間整理和測試) 為什么我要開發mdwiki? 目前本人的...
摘要:寫不下去了,直接貼地址吧。菜鳥第一個項目,求輕噴。后續打算變為采用來管理。加入圖片和文章爬蟲功能。 寫不下去了,直接貼地址吧。菜鳥第一個python項目,求輕噴。后續打算變client-side session為server-side session,采用redis來管理session。加入圖片和文章爬蟲功能。重構代碼。 項目地址:https://github.com/xbynet/m...
閱讀 1117·2023-04-26 03:02
閱讀 1161·2023-04-25 19:18
閱讀 2583·2021-11-23 09:51
閱讀 2561·2021-11-11 16:55
閱讀 2614·2021-10-21 09:39
閱讀 1694·2021-10-09 09:59
閱讀 1991·2021-09-26 09:55
閱讀 3512·2021-09-26 09:55