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
这个是这个项目的一个模块
- 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" %}
- 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()
- 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岁的
- 105.
#'django.middleware.csrf.CsrfViewMiddleware', #解决post请求403
就是注释掉