python + django 学习(一)

100.注意事项:
类名第一个字母大写。

init(self)方法是特殊方法,是类在创建的时候自动调用的,就是构造方法
这里的self和java中this是一样的

init()中定义了别的别的属性,在该方法中注明self.属性=属性

def _init_(self,name):
    self.name=name

实力创建:实力名称=类名(属性)
dog=Dog(“tom”)

实例使用方法和java中的一样。

Python中的继承:
父类写到子类前,子类在继承父类是:

class Erha(Dog):
    def(self,name,age):
        super._init_(name)
        self.age=age

一个类中只能有一个_init()函数

101.django+python开发:

Python3.5 要对应django1.8版本以后的,否则兼容性有问题

卸载django的方法:
C:\Program Files\Python35-32\Lib\site-packages\Django-1.9.13-py3.5.egg
这个文件夹删除就可以了

django安装方法:
进入django目录下,可以看到setup.py,在cmd中写setup.py install即可

建立项目:
首先cmd进入你要创建的项目目录下,运行django-admin.py startproject projectname

启动项目:
启动项目是由manage.py完成的:
进入目录,可以看到manage.py,运行 Python manage.py runserver 0.0.0.0:8080
浏览器中输入localhost:8080即可看到最初的页面

创建数据库连接(app):
django-admin.py startapp appname
这个是这个项目的一个模块

  1. django中的页面语句:

拿去字典数值型:
{{hello}}
这里的hello是映射中的key,通过key拿到value。

条件判断:

{% if a and b %}
{% endif %}
或者:
{% if a %}
{% elseif %}
{% else %}
{% endif %}

循环输出:

#正想迭代
<ul>
{% for i in numbers %}
{li>{{i.name}}</li>
{% endfor %}
</ul>
#反向迭代for循环结尾加reversed
{% for i in line reversed %}
#判断比较结果:
{% ifequal a b %}
{% else %}
{% endifequals %}
#django 注释
{# 注释 #}
#过滤器 
这里的过滤器和java中过滤器该年不同
java中过滤器是通过判断字符编码,url等是否符合规定,给予通过或者不通过
Python过滤器则像一个规范,把东西按照自己想要的东西输出

几种过滤器:
{{变量|规则|规则...}}
{{munber|lower} 把number输出小写
{{number|first|upper}}变量number数值首字母大写
{{number|truncatewords:"30"}}输出number的前三十个字符
{{number|addslashes}}添加反斜杠到任何反斜杠、单引号或者双引号前面。
{{data1:date:"F j,y"} 格式化时间,重点
{{number|length}}返回number的长度
#include包含标签
这个个人感觉和jsp中静态引用和动态引用类似
{% include "a.html" %}
  1. Python-mysql的数据库驱动文件
    http://download.csdn.net/download/hao930826/9604800
    解压,进入主目录,执行setpu.py install
    这是对于python3.5以上版本,因为,mysql暂时没有对他进行支持,知道3.4

版本带来很多的问题:
比如not such model ,没有该模块,一般报错是因为数据库连接出了问题。
在2.7之前,mysql连接用的是MySQLdb模块,到了3.0以后不再使用,而是pymysql。
但是Python代码任然会找员原来的MySQLdb。解决办法是,在intt.py 中添加:
import pymysql
pymysql.install_as_MySQLdb()

  1. 104.
# Django 1.7 及以上的版本需要用以下命令
python manage.py makemigrations
python manage.py migrate


Person.objects.all()

Person.objects.all()[:10] 切片操作,获取10个人,不支持负索引,切片可以节约内存

Person.objects.get(name=name)
get是用来获取一个对象的,如果需要获取满足条件的一些人,就要用到filter

Person.objects.filter(name="abc")  # 等于Person.objects.filter(name__exact="abc") 名称严格等于 "abc" 的人

Person.objects.filter(name__iexact="abc")  # 名称为 abc 但是不区分大小写,可以找到 ABC, Abc, aBC,这些都符合条件



Person.objects.filter(name__contains="abc")  # 名称中包含 "abc"的人

Person.objects.filter(name__icontains="abc")  #名称中包含 "abc",且abc不区分大小写



Person.objects.filter(name__regex="^abc")  # 正则表达式查询

Person.objects.filter(name__iregex="^abc")  # 正则表达式不区分大小写

filter是找出满足条件的,当然也有排除符合某条件的

Person.objects.exclude(name__contains="WZ")  # 排除包含 WZ 的Person对象

Person.objects.filter(name__contains="abc").exclude(age=23)  # 找出名称含有abc, 但是排除年龄是23岁的
  1. 105.
#'django.middleware.csrf.CsrfViewMiddleware',  #解决post请求403
就是注释掉
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值