1. Django项目
解析:Django是一个Python语言的Web应用框架,采用MVC的设计模式。如下所示:
(1)manage.py:一个实用的命令行工具,可让你以各种方式与该Django项目进行交互。
(2)views.py:处理用户发出的请求,从urls.py中对应过来,通过渲染templates中的网页显示内容。
(3)settings.py:该Django项目的设置/配置。
(4)urls.py:网址入口,关联到对应的views.py中的一个函数(或者generic类),访问网址就对应一个函数。
(5)models.py:与数据库操作相关,存入或读取数据时用到这个。
(6)templates文件夹:views.py中的函数渲染templates中的HTML模板,得到动态内容的网页,当然可以用缓存来提高速度。
(7)admin.py:后台,可以用很少量的代码就拥有一个强大的后台。
说明:创建项目django-admin.py startproject XXX,进入项目根目录XXX下,创建test模块python manage.py startapp test(Django 1.8.x以上的,还有一个migrations文件夹),启动项目python manage.py runserver
0.0.0.0:8000。
2. Pycharm中的PEP8规范
解析:File -> Settings -> Editor -> Code Style -> Inspections -> PEP8 -> 忽略。
3. PyCharm删除当前行
解析:CTRY Y。
4. PyCharm注释、取消注释行
解析:CTRL /。
5. Django模板标签
解析:Django模板是一个文本,用于分离文档的视图和数据。
(1)if/else标签
(2)for标签
(3)ifequal/ifnotequal标签 (4)注释标签
(5)过滤器
(6)include标签
说明:Django模板可以用继承的方式来实现复用。truncatewords:"n"显示变量的前n个字符;addslashes添加反斜杠到任何反斜杠、单引号或者双引号前面;date按指定的格式字符串参数格式化date或者datetime对象;length返回变量的长度。{% include %}标签允许在模板中包含其它的模板的内容,比如{% include "nav.html" %}。
6. Django模型
解析:
(1)数据库配置
(2)定义模型
(3)数据库操作(增删改查)
说明:创建app命令python manage.py startapp TestModel。数据类型则由CharField(相当于varchar)、DateField(相当于datetime),max_length参数限定长度。python manage.py makemigrations创建迁移文件,python manage.py migrate更新数据库。
7. Django表单
解析:
(1)HTTP请求:HTTP协议以“请求-回复”的方式工作。客户发送请求时,可以在请求中附加数据。服务器通过解析请求,就可以获得客户传来的数据,并根据URL来提供特定的服务。包括GET方法和POST方法。
(2)Request对象
(3)QueryDict对象:在HttpRequest对象中,GET和POST属性是django.http.QueryDict类的实例。QueryDict类似字典的自定义类,用来处理单键对应多值的情况。
8. Django Admin管理工具 [2]
解析:Django Admin的存在是为了方便管理员添加修改删除数据和管理站点任务。激活管理工具,如下所示:
from django.contrib import admin admin.autodiscover() # And include this URLpattern... urlpatterns = patterns('', # ... (r'^admin/', include(admin.site.urls)), # ... )说明:http://yoursite:8000/admin/,python manage.py createsuperuser创建超级用户,python manage.py changepassword username修改用户密码。
9. wsgi,uwsgi,uWSGI [5]
解析:
(1)wsgi(Web Server Gateway Interface)是Web服务器和Web应用程序之间的接口协议。。
(2)uwsgi是一种线路协议而不是通信协议,用于在uWSGI服务器与其他网络服务器的数据通信。
(3)uWSGI是实现了uwsgi(原生协议)和wsgi两种协议的Web服务器。
说明:Nginx的作用主要是安全问题,负载均衡问题,提升Web服务器的IO性能等。其中,Nginx和uWSGI之间通过uwsgi协议通信。[浏览器 -> Nginx -> uWSGI]
10. Django模板继承
解析:名为mainbody的block标签是可以被继承者们替换掉的部分,所有的{% block %}标签告诉模板引擎,子模板可以重载这些部分。如下所示:
{% extends "base.html" %} {% block mainbody %} <p>继承了 base.html 文件</p> {% endblock %}
11. Django工作流程
解析:Django工作流程,如下所示:
说明:HTTP定义与服务器交互的4中常见方式:Put(增),Delete(删),Post(改),Get(查)。
12. 清空数据库
解析:python manage.py flush
13. Django项目环境终端
解析:python manage.py shell。如果安装ipython会自动用它的界面,该命令和直接运行python进入shell的区别是:可以在这个shell里面调用当前项目models.py中的API,对于操作数据和测试非常方便。
14. 数据库命令行
解析:python manage.py dbshell。Django自动进入在settings.py中设置的数据库,在这个终端可以执行数据库的SQL语句。终端输入python manage.py可以看到使用manage.py命令的详细列表。
15. Django REST Framework
解析:Django REST Framework即基于Django的REST框架,使用Django REST Framework可以实现RESTful Web Service。
16. Ubuntu + Django + Nginx + uWSGI安装配置 [3]
解析:
(1)安装Nginx:sudo apt-get install nginx。
(2)安装uWSGI:sudo apt-get install python-dev;sudo pip install uwsgi。
(3)安装Django:pip install django。
Nginx配置,如下所示:(/etc/nginx/sites-available/chain.conf和/etc/nginx/sites-enabled/chain.conf)
server { listen 8888; server_name WWW.XXX.YYY.ZZZ; location / { include /etc/nginx/uwsgi_params; uwsgi_pass 127.0.0.1:9090; root /home/administrator/BodyMeasure/BodyMeasure; #指向settings.py的目录 access_log off; } }uWSGI配置,如下所示:(/etc/uwsgi.ini)
[uwsgi] socket = 127.0.0.1:9090 master = true //主进程 vhost = false //多站模式 no-site = true //多站模式时不设置入口模块和文件 workers = 2 //子进程数 reload-mercy = 10 vacuum = true //退出、重启时清理文件 max-requests = 1000 limit-as = 512 buffer-size = 30000 # pidfile = /var/run/uwsgi.pid //pid文件,用于下面的脚本启动、停止该进程 daemonize = /home/administrator/BodyMeasure/uwsgi.log chdir = /home/administrator/BodyMeasure module = BodyMeasure.wsgi:application说明:常用操作命令为uwsgi --ini /etc/uwsgi.ini &;sudo /etc/init.d/nginx start;sudo killall -9 uwsgi;常用日志目录为/var/log/nginx/(access.log和error.log),/home/administrator/BodyMeasure/(uwsgi.log)。有错误,找日志,对症下药,药到病除。
17. from django.core.wsgi import get_wsgi_application;ImportError: No module named django.core.wsgi
解析:export PYTHONPATH=$PYTHONPATH:/usr/local/lib/python2.7/dist-packages
参考文献:
[1] Django模型:http://www.runoob.com/django/django-model.html
[2] 利用Django Admin完成更多任务:http://www.ibm.com/developerworks/cn/opensource/os-django-admin/
[3] Django Nginx+uwsgi安装配置:http://www.runoob.com/django/django-nginx-uwsgi.html
[4] Fedora20 + Nginx + uWSGI + Django环境的搭建:http://blog.csdn.net/celte/article/details/38305851
[5] nginx,uwsgi,wsgi,django之间的关系:http://blog.csdn.net/u014761344/article/details/40146597
