在你的.py文件第一行加上 #!/usr/bin/python3.5 (或者#!/usr/bin/python3,或者你的python3二進(jìn)制文件的位置)
不建議以下方法解決:
cd /usr/bin
mv python python2.7_bak
ln -s python3.5 python.values('pcbid', 'cityid') model中cityid不要設(shè)為主鍵,不知道為什么django文檔中我找不到為什么。
檢查一下兩個(gè)UA是不是不一樣
你既然在異步框架用了協(xié)程,在hello前有異步裝飾器,那么你在yiled from后面跟的這個(gè)函數(shù)必須要有框架的異步裝飾器進(jìn)行裝飾。就像如下:
@asyncio.coroutine
def foo():
time.sleep(1)
return "1"
想更深入地了解裝飾器的作用,你就需要自己去搜搜資料學(xué)了。一般異步框架的話,只要這么裝飾起來(lái)用就OK了。
如果直接綁二級(jí)域名,那 萬(wàn)一 有人掃描呢。
既然是內(nèi)網(wǎng),可以直接做反代嘛,最簡(jiǎn)單的做法就是改 hosts,或者 Nginx 之類的東西設(shè)置一下。
自己解決了.
fields.page和fields.pageSize獲取的是字符串
所以轉(zhuǎn)換一下就ok
fields.pageSize = parseInt(fields.pageSize);
fields.page= parseInt(fields.page);python沒(méi)有這種語(yǔ)法的,按下面這樣寫:
cPanel.get_panel_list(key, '') if 'process' == item else cPanel.get_panel_list(key)ajax的data參數(shù)應(yīng)該是字典類型,不需要stringify,把這句(var data = JSON.stringify(data1))刪了就可以了。
from functools import wraps
import time
class Debugger(object):
attribute_acceses = []
method_calls = []
def wrap(f):
@wraps(f)
def new_func(*args, **kwargs):
start = time.time()
ret = f(*args, **kwargs)
Debugger.method_calls.append({
'class': type(args[0]),
'method': f.__name__,
'args': args,
'kwargs': kwargs,
'time': time.time()-start
})
return ret
return new_func
class Meta(type):
def __new__(meta_cls, cls_name, cls_parent, cls_attr):
for k, v in cls_attr.items():
if callable(v):
cls_attr[k] = wrap(v)
def __getattribute__(self, name):
value = super(cls, self).__getattribute__(name)
Debugger.attribute_acceses.append({
'action': 'get',
'class': type(self),
'attribute': name,
'value': value # actual value
})
return value
cls_attr['__getattribute__'] = __getattribute__
def __setattr__(self, name, value):
Debugger.attribute_acceses.append({
'action': 'set',
'class': type(self),
'attribute': name,
'value': value
})
return super(cls, self).__setattr__(name, value)
cls_attr['__setattr__'] = __setattr__
cls = type.__new__(meta_cls, cls_name, cls_parent, cls_attr)
return clsRESTful ,但是也要和實(shí)際業(yè)務(wù)需求結(jié)合,靈活應(yīng)變。font 樣式?jīng)Q定~
font-size
font-family
font-weight。。。
encode 是編碼的意思,decode 才是解碼。這里不需要做轉(zhuǎn)化。
我這個(gè)是可以的。flask-sqlachemy遷移只能添加字段,不能修改和刪除的。看下你的models.py中表和數(shù)據(jù)庫(kù)表是否一致。
Django2.0之后,on_delete是必須要寫的。不然的話會(huì)報(bào)錯(cuò),pycharm編輯器也會(huì)提示。建議先把環(huán)境配置成和書中一樣的版本。
shutil 這個(gè)標(biāo)準(zhǔn)庫(kù)是用python代碼實(shí)現(xiàn)的,想知道它的原理可以看看源碼:https://github.com/python/cpy...
最新的文檔看這里,http://docs.celeryproject.org...
這是我自己寫的文檔,我當(dāng)時(shí)測(cè)試的時(shí)候用到了djcelery的配置界面,代碼里可以這么指定隊(duì)列和路由鍵
>>> from feeds.tasks import import_feed
>>> import_feed.apply_async(args=['http://cnn.com/rss'],
... queue='feed_tasks',
... routing_key='feed.import')
任務(wù)路由?
?
本節(jié)只討論自動(dòng)路由,更詳細(xì)內(nèi)容可以參考文檔 http://docs.celeryproject.org...。?
?
默認(rèn)設(shè)置情況下Celery自動(dòng)開啟路由功能,當(dāng)指定的隊(duì)列不存在時(shí),Celery會(huì)自動(dòng)創(chuàng)建?;谶@一特性,在settings.py中可以添加以下配置項(xiàng),在任務(wù)和隊(duì)列名稱之間指定對(duì)應(yīng)關(guān)系。?
CELERY_ROUTES = {'app.tasks.minus': {'queue': 'minus'}}?
?
當(dāng)設(shè)置修改完成之后,需要修改工作線程的啟動(dòng)參數(shù),指定工作線程需要處理的隊(duì)列。例如這里定義了兩個(gè)工作線程服務(wù) cdworker1和cdworker2。?
?
[root@localhost system]# cat cdworker1.service?
[Unit]?
Description=celerydemoworker daemon?
After=network.target?
?
[Service]?
User=nginx?
Group=nginx?
WorkingDirectory=/opt/apps/celerydemo?
ExecStart=/opt/apps/celerydemo/env/bin/python /opt/apps/celerydemo/manage.py celery worker -A celerydemo -n cdworker1 -l info -f /var/log/celery/cdworker1.log?
?
[Install]?
WantedBy=multi-user.target?
?
[root@localhost system]# cat cdworker2.service?
[Unit]?
Description=celerydemominusworker daemon?
After=network.target?
?
[Service]?
User=nginx?
Group=nginx?
WorkingDirectory=/opt/apps/celerydemo?
ExecStart=/opt/apps/celerydemo/env/bin/python /opt/apps/celerydemo/manage.py celery worker -n cdworker2 -A celerydemo -l info -f /var/log/celery/cdworker2.log -Q minus?
?
[Install]?
WantedBy=multi-user.target?
?
配置文件創(chuàng)建完成后,啟動(dòng)服務(wù)。?
?
打開瀏覽器,訪問(wèn)http://<site_fqdn>/admin/djcelery?
單擊Preodic tasks,可以查看已存在的定時(shí)任務(wù)?
在Preodic tasks列表頁(yè)面,單擊右上角的添加按鈕可以創(chuàng)建定時(shí)任務(wù)?
在Name文本框中鍵入任務(wù)名稱?
在Task (registered)下拉框中選擇需要定時(shí)執(zhí)行的任務(wù)?
在Schedule下選擇或創(chuàng)建任務(wù)執(zhí)行間隔。?
在Arguments下指定任務(wù)所需參數(shù)。?
在Execution Options下指定隊(duì)列名稱(名稱區(qū)分大小寫),完成之后保存。?
你沒(méi)錢了,提醒你充值
錯(cuò)誤定位在45行:
infodict.update({"股票名稱": stockname.text.split()[0]})#
應(yīng)該是某些股票名稱為空造成的。
調(diào)試時(shí),不要用try...except把錯(cuò)誤信息都屏蔽了,在關(guān)鍵的地方打上斷點(diǎn)或者print出值看看。
if grades >= 90:
grades == 'A'
改成:
if grades >= 90:
grades = 'A' #這里只要一個(gè)等號(hào),因?yàn)槭琴x值而不是判斷python 相對(duì)來(lái)說(shuō)爬蟲庫(kù)比較完善,網(wǎng)絡(luò)和進(jìn)程方面?zhèn)€人認(rèn)為要優(yōu)于PHP的爬蟲
北大青鳥APTECH成立于1999年。依托北京大學(xué)優(yōu)質(zhì)雄厚的教育資源和背景,秉承“教育改變生活”的發(fā)展理念,致力于培養(yǎng)中國(guó)IT技能型緊缺人才,是大數(shù)據(jù)專業(yè)的國(guó)家
達(dá)內(nèi)教育集團(tuán)成立于2002年,是一家由留學(xué)海歸創(chuàng)辦的高端職業(yè)教育培訓(xùn)機(jī)構(gòu),是中國(guó)一站式人才培養(yǎng)平臺(tái)、一站式人才輸送平臺(tái)。2014年4月3日在美國(guó)成功上市,融資1
北大課工場(chǎng)是北京大學(xué)校辦產(chǎn)業(yè)為響應(yīng)國(guó)家深化產(chǎn)教融合/校企合作的政策,積極推進(jìn)“中國(guó)制造2025”,實(shí)現(xiàn)中華民族偉大復(fù)興的升級(jí)產(chǎn)業(yè)鏈。利用北京大學(xué)優(yōu)質(zhì)教育資源及背
博為峰,中國(guó)職業(yè)人才培訓(xùn)領(lǐng)域的先行者
曾工作于聯(lián)想擔(dān)任系統(tǒng)開發(fā)工程師,曾在博彥科技股份有限公司擔(dān)任項(xiàng)目經(jīng)理從事移動(dòng)互聯(lián)網(wǎng)管理及研發(fā)工作,曾創(chuàng)辦藍(lán)懿科技有限責(zé)任公司從事總經(jīng)理職務(wù)負(fù)責(zé)iOS教學(xué)及管理工作。
浪潮集團(tuán)項(xiàng)目經(jīng)理。精通Java與.NET 技術(shù), 熟練的跨平臺(tái)面向?qū)ο箝_發(fā)經(jīng)驗(yàn),技術(shù)功底深厚。 授課風(fēng)格 授課風(fēng)格清新自然、條理清晰、主次分明、重點(diǎn)難點(diǎn)突出、引人入勝。
精通HTML5和CSS3;Javascript及主流js庫(kù),具有快速界面開發(fā)的能力,對(duì)瀏覽器兼容性、前端性能優(yōu)化等有深入理解。精通網(wǎng)頁(yè)制作和網(wǎng)頁(yè)游戲開發(fā)。
具有10 年的Java 企業(yè)應(yīng)用開發(fā)經(jīng)驗(yàn)。曾經(jīng)歷任德國(guó)Software AG 技術(shù)顧問(wèn),美國(guó)Dachieve 系統(tǒng)架構(gòu)師,美國(guó)AngelEngineers Inc. 系統(tǒng)架構(gòu)師。