=Start=
缘由:
总结以往经验,方便以后参考
正文:
1. 编译安装 Python 2.7
2. 安装 Python 2.7 对应的 PIP
3. 利用 PIP 安装一些模块
$ pip install Django==1.8.16 MySQL-python virtualenv virtualenvwrapper
4. 使 VirtualENV 立即生效
$ vim ~/.bashrc export WORKON_HOME=$HOME/.virtualenvs export PROJECT_HOME=$HOME/workspace source /usr/local/bin/virtualenvwrapper.sh $ source ~/.bashrc
5. 使用虚拟环境
mkvirtualenv soc #创建运行环境soc workon soc #工作在 soc 环境 或 从其它环境切换到 soc 环境 deactivate #退出终端环境 rmvirtualenv soc #删除运行环境soc lsvirtualenv #列出可用的运行环境 lssitepackages #列出当前环境安装了的包
6. 开始Django项目的开发
#1. 新建一个 django project $ django-admin.py startproject sec_op_center $ cd sec_op_center/ #2. 新建 app $ django-admin.py startapp bash_app $ vim sec_op_center/settings.py #将新定义的app名称(bash_app)加到settings.py中的INSTALL_APPS中 $ vim bash_app/views.py #定义视图函数(访问页面时的内容) $ vim sec_op_center/urls.py #定义视图函数相关的URL[即:访问什么网址对应什么内容] #2.x 再建一个 app $ django-admin.py startapp idc_app $ vim sec_op_center/settings.py #将新定义的app名称(idc_app)加到settings.py中的INSTALL_APPS中 $ vim idc_app/views.py #定义视图函数(访问页面时的内容) $ vim sec_op_center/urls.py #定义视图函数相关的URL[即:访问什么网址对应什么内容] #3. 数据库配置&同步数据库 $ vim sec_op_center/settings.py DATABASES = { 'default': { 'ENGINE': 'django.db.backends.sqlite3', 'NAME': os.path.join(BASE_DIR, 'db.sqlite3'), }, 'db1': { 'ENGINE': 'django.db.backends.mysql', 'NAME': 'dbname1', 'USER': 'your_db_user_name', 'PASSWORD': 'yourpassword', "HOST": "localhost", }, 'db2': { 'ENGINE': 'django.db.backends.mysql', 'NAME': 'dbname2', 'USER': 'your_db_user_name', 'PASSWORD': 'yourpassword', "HOST": "localhost", }, } # use multi-database in django DATABASE_ROUTERS = ['project_name.database_router.DatabaseAppsRouter'] DATABASE_APPS_MAPPING = { #'app_name':'database_name', 'app1': 'db1', 'app2': 'db2', } # http://www.ziqiangxuetang.com/django/django-multi-database.html $ python manage.py makemigrations $ python manage.py migrate #4. 运行测试 $ python manage.py runserver 0.0.0.0:8080
7.一个Django项目(project)中各应用(app)如何基于一套基础模板进行开发
Django 模板查找机制: Django 查找模板的过程是在每个 app 的 templates 文件夹中找(而不只是当前 app 中的代码只在当前的 app 的 templates 文件夹中找)。各个 app 的 templates 形成一个文件夹列表,Django 遍历这个列表,一个个文件夹进行查找,当在某一个文件夹找到的时候就停止,所有的都遍历完了还找不到指定的模板的时候就是 Template Not Found (过程类似于Python找包)。这样设计有利当然也有弊,有利是的地方是一个app可以用另一个app的模板文件,弊是有可能会找错了。所以我们使用的时候在 templates 中建立一个 app 同名的文件夹,这样就好了。这就需要把每个app中的 templates 文件夹中再建一个 app 的名称,仅和该app相关的模板放在 app/templates/app/ 目录下面,在使用的时候,模板就是 “app1/index.html” 和 “app2/index.html” 这样有app作为名称的一部分,就不会混淆。
Django项目的app的模板一般放在自己app目录下的templates中,Django会自动去这个文件夹中找。
推荐将多个app共用的基础模板文件放在由项目的 settings.py 文件中指定的 STATIC_URL 所在目录下,然后在各个app下的 templates 文件夹中存放、编辑各自的内容模板文件即可在多应用的情况下基于一套模板进行开发。
- http://www.ziqiangxuetang.com/django/django-template.html
- http://www.ziqiangxuetang.com/django/django-static-files.html
8.待添加
……
=END=
《 “Django的使用记录” 》 有 13 条评论
一个极好的Django应用、项目、资源列表
http://awesome-django.com
https://github.com/rosarior/awesome-django
Django 搭建简易博客教程
https://github.com/Andrew-liu/my_blog_tutorial
http://wiki.jikexueyuan.com/project/django-set-up-blog/
帮助你选择Web框架
https://github.com/gothinkster/realworld
基于Django的双因子认证实现
http://www.freebuf.com/articles/network/150071.html
Django 安全最佳实践
http://www.atjiang.com/2scoopsdjango1.8-26-security-best-practices/
Django安全编码与实践分享
https://www.landgrey.me/django_security_resource_share/
Django 简单入门及最佳实践
http://pylixm.cc/posts/2016-05-08-Django-tutorial.html
Django 部署的非最佳实践
https://isudox.com/2016/06/01/non-best-practice-of-django-deployment/
Django 设计模式与最佳实践
https://www.gitbook.com/book/wizardforcel/django-design-patterns-and-best-practices/details
https://github.com/cundi/Django-Design-Patterns-and-Best-Practices/issues?q=is%3Aopen
http://hifor.net/ebook/uncategorized/django-%E8%AE%BE%E8%AE%A1%E6%A8%A1%E5%BC%8F%E4%B8%8E%E6%9C%80%E4%BD%B3%E5%AE%9E%E8%B7%B5/
Django实践笔记
https://zhuanlan.zhihu.com/p/25294915
Django 优秀资源大全
https://github.com/haiiiiiyun/awesome-django-cn
Django 安全策略的 7 条总结!
http://blog.oneapm.com/apm-tech/347.html
http://reinout.vanrees.org/weblog/2015/11/06/django-security.html
谈谈 django 应用实践
https://zhuanlan.zhihu.com/p/30113656
`
整体流程
views 模块
urls 模块
models 模块
forms 模块
admin 模块
commands 模块
settings 模块
contrib 模块
middleware 模块
`
https://github.com/rosarior/awesome-django
Python Django 中的 request.META
http://python.usyiyi.cn/translate/django_182/ref/request-response.html
request.META里包含了哪些数据?
http://www.nowamagic.net/academy/detail/1318909
Django开发最佳实践(上)
http://www.freebuf.com/column/165233.html
【技术分享】Django开发最佳实践(下)
https://mp.weixin.qq.com/s/KD6Q0OVImDHZH82bfBpc_g
记Django开发中的一些常用代码段
https://thief.one/2018/01/26/1/
`
1. 前端功能
1.1. 面板折叠
1.2. 表格分页
1.3. 弹出框(可编辑)
1.4. 弹出提醒框(不可编辑)
1.5. 搜索框自动补全
1.6. ajax请求
1.7. 界面面板布局
2. 后端功能
2.1. 表格分页
2.2. session做身份认证
`
Django 远程命令执行漏洞详解
http://rickgray.me/2015/09/12/django-command-execution-analysis.html
Django开发与攻防测试(入门篇)
https://paper.tuisec.win/detail/3a05ed6424c0b75
http://www.freebuf.com/vuls/176505.html
Django ImproperlyConfigured at /
https://stackoverflow.com/questions/25468412/django-improperlyconfigured-at
`
Do not use include() for a view pattern:
urlpatterns = patterns(”,
url(r’^admin/’, include(admin.site.urls)),
url(r’^hello/’, testsite.views.hello),
)
include() is for “including” url configuration in-place from another module/application.
`