标签:change 分享 开发效率 pos 它的 如何 com abs 应用程序
而Django的缺点主要源自Django坚持自己造所有的轮子,整个系统相对封闭,Django最为人诟病的地方有:
系统紧耦合,如果你觉得Django内置的某项功能不是很好,想用喜欢的第三方库来代替是很难的,比如下面将要说的ORM、Template。要在Django里用SQLAlchemy或Mako几乎是不可能,即使打了一些补丁用上了也会让你觉得非常非常别扭。
Django自带的ORM远不如SQLAlchemy强大,除了在Django这一亩三分地,SQLAlchemy是Python世界里事实上的ORM标准,其它框架都支持SQLAlchemy了,唯独Django仍然坚持自己的那一套。Django的开发人员对SQLAlchemy的支持也是有过讨论和尝试的,不过最终还是放弃了,估计是代价太高且跟Django其它的模块很难合到一块。
Django的MTV模式本质是各组件之间为了保持松耦合关系,Django的MTV分别代表:
Model(模型):负责业务对象与数据库的对象(ORM)
Template(模版):负责如何把页面展示给用户
View(视图):负责业务逻辑,并在适当的时候调用Model和Template
此外,Django还有一个url分发器,它的作用是将一个个URL的页面请求分发给不同的view处理,view再调用相应的Model和Template
pip3 install django
django-admin.py startproject mysite
当前目录下会生成mysite的工程,目录结构如下:
python manage.py startapp blog
注意这里出现了一个坑,当我执行以上命令时出现了如下报错:
进到源码里看看
于是就在命令行里导入此模块,发现报错。
到网络上搜了一下,原因是编译安装 Python3 时,缺少 sqlite3
依赖。坑啊!!!
重新安装依赖库,编译吧
yum install sqlite-devel make clean make && make install
重新创建成功:
python manage.py runserver 8080
这样我们的django就启动起来了!当我们访问:http://127.0.0.1:8080/时就可以看到:
数据库的初始化,也就是给这个项目创建一个库和表
python manage.py makemigrations python manage.py migrate
这种方法可以创建表,当你在models.py中新增了类时,运行它就可以自动在数据库中创建表了,不用手动创建。
python manage.py flush
这个命令会把项目下的数据的表空完全清空,只剩下一个空表
python manage.py createsuperuser # 按照提示输入用户名和对应的密码就好了邮箱可以留空,用户名和密码必填 # 修改 用户密码可以用: python manage.py changepassword username
python manage.py shell
这个命令和 直接运行 python 进入 shell 的区别是:你可以在这个 shell 里面调用当前项目的 models.py 中的 API,对于操作数据的测试非常方便。
另外一个
ython manage.py dbshell
Django 会自动进入在settings.py中设置的数据库,如果是 MySQL 或 postgreSQL,会要求输入数据库用户密码。
在这个终端可以执行数据库的SQL语句。如果您对SQL比较熟悉,可能喜欢这种方式。
更多的命令帮助
python manage.py
用于查看所有的命令,忘记子名称的时候特别有用。
标签:change 分享 开发效率 pos 它的 如何 com abs 应用程序
原文地址:http://www.cnblogs.com/xiguatian/p/6828189.html