Django学习总结一

一.Django安装

Django安装依赖于pyhon,必须先安装python,这里我们使用3.3的版本,Django的安装相当简单,使用pip包管理工具即可!

pip install Django==1.8.1

检测一下是否安装成功:

试着导入Django包看是否成功。(有没有注意到我的目录sqlmap大笑,有时间我写一篇SQL注入方面的例子)


二.项目开发

新建第一个项目:

django-admin.py startproject demo1

cd demo1

创建应用:

python-admin.py startapp blog

配置文件添加(settings.py):

INSTALLED_APPS---------->blog


修改urls.py:

url(r'^blog/index/$','blog.views.index')(做一个映射--当访问blog/index/时,调用blog下views模块中的index方法)


blog.views.py:

增加index方法,与上面对应。

启动服务器:

python manage.py runserver


可以更改本地端口:
python manage.py runserver 8080
 
还可以设置成允许公开的互联网连接
python manage.py runserver 0.0.0.0:8000
这样只要在别人的浏览器中输入你的服务器的IP和端口就可以访问了



加载模板文件(静态):

render_to_response("dut.html",{})


模板路径设置:(Django 1.8+)

 'DIRS': [os.path.join(BASE_DIR,'templates')],

注:os.path.join会智能地选择正确的后向斜杠”“进行连接,而不是前向斜杠”/”。不要在写成‘\templates’

三.MySQL数据库安装

sudo apt-get install mysql-server mysql-common mysql-client

pip install python-mysql(如出错参考:http://www.111cn.net/sys/CentOS/53617.htm


数据库操作三部曲:

插入和更新数据

>>> p = Publisher(name='Apress',
...         address='2855 Telegraph Ave.',
...         city='Berkeley',
...         state_province='CA',
...         country='U.S.A.',
...         website='http://www.apress.com/')

这个对象实例并没有 对数据库做修改。 在调用`` save()`` 方法之前,记录并没有保存至数据库,像这样:

>>> p.save()

>>> p.name = 'Apress Publishing'
>>> p.save()

选择对象

>>> Publisher.objects.all()
[<Publisher: Apress>, <Publisher: O'Reilly>]

数据过滤

>>> Publisher.objects.filter(name='Apress')
[<Publisher: Apress>]


>>> Publisher.objects.filter(name__contains="press")
[<Publisher: Apress>]

获取单个对象

>>> Publisher.objects.get(name="Apress")
<Publisher: Apress>

如果结果是多个对象,会导致抛出异常:

>>> Publisher.objects.get(country="U.S.A.")
Traceback (most recent call last):
    ...
MultipleObjectsReturned: get() returned more than one Publisher --
    it returned 2! Lookup parameters were {'country': 'U.S.A.'}

如果查询没有返回结果也会抛出异常!

try:
    p = Publisher.objects.get(name='Apress')
except Publisher.DoesNotExist:
    print "Apress isn't in the database yet."
else:
    print "Apress is in the database."

数据排序

在你的 Django 应用中,你或许希望根据某字段的值对检索结果排序,比如说,按字母顺序。 那么,使用 order_by() 这个方法就可以搞定了。

>>> Publisher.objects.order_by("name")
[<Publisher: Apress>, <Publisher: O'Reilly>]

如果需要以多个字段为标准进行排序(第二个字段会在第一个字段的值相同的情况下被使用到),使用多个参数就可以了,如下:

>>> Publisher.objects.order_by("state_province", "address")
 [<Publisher: Apress>, <Publisher: O'Reilly>]
</pre><span style="font-size:18px;">我们还可以指定逆向排序,在前面加一个减号 <tt class="docutils literal"><span class="pre">-</span></tt> 前缀</span><pre name="code" class="python">>>> Publisher.objects.order_by("-name")
[<Publisher: O'Reilly>, <Publisher: Apress>]

连锁查询

>>> Publisher.objects.filter(country="U.S.A.").order_by("-name")
[<Publisher: O'Reilly>, <Publisher: Apress>]

限制返回的数据

>>> Publisher.objects.order_by('name')[0:2]

注意,不支持Python的负索引(negative slicing):

更新多个对象

>>> Publisher.objects.all().update(country='USA')
2

删除对象

 Publisher.objects.filter(country='USA').delete()


Admin模块:

运行 python manage.py syncdb 。这一步将生成管理界面使用的额外数据库表。

提高工作效率的神器:

locals()

df -h(显示当前各分区使用情况



                
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值