当Django 的application开发完成之后,我们希望能将其作为模块分发出去供别人共享使用
安装好Django之后
1 | ## create project |
创建一个父目录
mkdir -pv /opt/django-todo
copy 刚才新增的 application todo
到 该目录下
cp -r todo /opt/django-todo/
一般开发完成application之后,在todo
下面会生成__pycache__
和 migrations
, 一般会保留migrations
作为应用的初始化; 或者删除不打包到Python package中,安装应用之后可以使用python manage.py makemigrations todo
和 python manage.py migrate todo
来初始化;
__pycache__
可以删除不做打包
新增README.MD 和 setup.py
README.MD 作为项目的详细说明,这里省略,详细可以参考:todo README
setup.py 是打包安装脚本,详细脚本如下:
1 | import os |
编译打包、安装、注册、上传
python setup.py sdist
python setup.py register
python setup.py upload
新增~/.pypirc
而不是 ~/.pypi
刚才报错Server response (410): Project pre-registration is no longer required or supported, so continue dire
就是配置文件命名成了 ~/.pypi
1 | [distutils] |
you can install via pip
pip install colinws-todo
or you can git clone this repository and use setup.py
git clone https://github.com/opscolin/Django-todo.git
cd Django-todo
python setup.py install
Add "todo"
to your INSTALLED_APPS
setting like this:
INSTALLED_APPS = [ ... 'todo',]
Include the todo URLconf
in your project urls.py
like this:
url(r'^todo/', include('todo.urls')),
Run below command to create todo models migrations.:
python manage.py makemigrations todo
Run below command to create todo real models.:
python manage.py migrate todo
Start the development server and visit http://127.0.0.1:8000/admin/ to create a todo (you’ll need the Admin app enabled).
Visit http://127.0.0.1:8000/todo/ to participate in the todo list.
今天在尝试
Flask-Mail
发送邮件的过程中,遇到一个小问题导致发送邮件失败,查到了半天问题,真是被自己蠢到了。
这里针对这个问题的前因后果做一个整理分享给大家,避免大家踩同样的坑。
这里建议利用 virtualenv
来创建隔离的环境来测试发送邮件,关于 virtualenv相关的介绍和使用可以参考如下连接
>>> goods = [['appple',70999],['banaba',2000],['orange',10000]]
>>> type(goods)
<type 'list'>
>>> for index,item in enumerate(goods):
... print index,item
...
0 ['appple', 70999]
1 ['banaba', 2000]
2 ['orange', 10000]
>>> for index,item in enumerate(goods):
... print index,item[0],item[1]
...
0 appple 70999
1 banaba 2000
2 orange 10000
>>>
## enumerate可以有第二个参数
>>> for index,item in enumerate(goods,2):
... print index,item[0],item[1]
...
2 appple 70999
3 banaba 2000
4 orange 10000
>>>
文件大小为83M,用python计算文件行数
实际脚本
#!/usr/bin/env python
#-*- coding:utf8 -*-
file = '/usr/local/tomcat/logs/appLog/appLog.2016-11-08.log'
## 方式一,对于文件很大的时候比较慢
#count = len(open(file,'r').readlines())
#print count
## 方式二,相对比较高效
count = 0
for index, line in enumerate(open(file,'r')):
count += 1
print count
针对项目的不同,
flask
可以采用不同配置方式来快速开发
app.config['HOST'] = 'www.baidu.com'
app.config.update(
'HOST' = 'www.baidu.com',
'PORT' = 3306
)
查看具体的配置 print app.config.get('HOST')
export MyAppConfig='/etc/flask-setting.cfg'
app.config.from_envvar('MyAppConfig')