1.刚进公司的时候咱们的版本比较老旧,后来由于维护的扩展且1.8版本也开始再也不维护,今年将开始使用1.11.11版本咱们这里也统一使用1.11.11
2.计算机名不能是中文,项目也不要用中文
3.使用前关闭浏览器缓存
4.必定要从右上角点击启动 不要右键运行
5.每建立一个app都把他添加到INSTALLED_APPS
6.为了安全方式异网提交表单,咱们能够开启csrf中间件,可是咱们方便学习先注释,项目完成后再开启,在setting的MIDDLEWARE中
7.可能会有不兼容的状况,尽可能使用python3.6
8.用django必定要保证只有一个在运行状态 切记切记!!!!!!!
9..一个pycharm只能有一个工程
10.没有这个url,浏览器会在资源后面添加/ 继续访问
11.在ORM中类必定必定要继承 models.Model
12.每次修改完表以后,必须执行数据库迁移才能起做用
13.发送ajax的按钮必定不能放在form表单里
14.request.user.save() # 修改密码必定要记得保存
1.安装django并验证是否安装成功html
2.建立项目 建立apppython
3.关闭 csrfmysql
4.注册appjquery
5.配置templateajax
6.配置静态文件 详见【静态文件配置】sql
7.弄orm setting配置,orm, 输入数据库迁移命令建立表数据库
8.学习路由层express
1.若是不想经过manage,py 来输入命令能够在 启动tooldjango
2.会自动建立一个app而且注册,后续须要手动注册浏览器
3.浏览器匹配不上的话,就会加一个/重定向
在表单提交的时候必定action要注意前面是否加了/
加了就是网服务器下的资源访问
不加是当前页面后面的/rel去访问
4.若是是 SyntaxError: Generator expression must be parenthesized 这个错误能够修改源码 去掉 逗号
5.request.POST 查出来至关于一个列表,get只能拿到最后一个,能够用get_list("K")的形式 ['xzq', 'xzq']
6.query对象 没法使用内部元素的属性
7.在跨表查询中,正向查找须要用到类的属性(非表名)
8.多对多正向查找 obj.外键.all()
9.若是再也不视图层使用ORM能够增长以下代码:
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "day58.settings")
import django
django.setup()
在导入models 使用
1.浏览器发送url请求
2.经过 WSGI 拿到path
3.进url 进行路由匹配
4.进入视图函数
5.拿到html 文件经过本身的content字典 把里面的Django{}进行替换
6.走一次中间件
3.
视图函数处理具体页面(经过jinja2语法把html页面的一些占位符替换程咱们的数据)再返回app
app返回结果为服务器页面(二进制)
Django就是基于B/C架构的Web应用框架,由咱们python开发
Django是一个基于MVC构造的框架。不须要考虑到C主要是T模板 称为 MTV模式。
pip3 install django==1.11.9
验证下载成功
建立项目
django-admin startproject mysite
django-admin startapp appname
以上方法不能建立
templates
咱们将使用使用pycharm自带的建立
django各个文件的做用
应用名
migrations 数据库迁移记录相关数据
admin.py django后台管理相关
models.py 模型表相关
views.py 视图函数相关
项目名
settings.py 配置文件
urls.py 路由与视图函数的映射关系
templates
项目用到的全部的html文件
manage.py
django入口文件
项目中__init__做用
在setting 中的MIDDLEWARE和INSTALLED_APPS
INSTALLED_APPS里添加添加'app01.apps.App01Config', #项目下的apps.py文件.类名
1.导入视图函数
2.发现路径以index开头的就把request交给index 函数处理
HttpResponse
HttpResponse (request对象,网页文件,替换的字典)
render
redirect
重定向新的网页 参数url
内部传入一个字符串参数,返回给浏览器。
若是咱们是绝对路径导入静态文件
用的是路由匹配
配置STATICFILES_DIR做用:只要是STATIC_URL Request URL接口前缀 (好比xxx)
那么就查找STATICFILES_DIR下的目录开始找
网页资源下的某个节点
不写:当前页面提交
写了某个节点
以及 ip+端口+资源的形式
1.在setting DATABASES={ 'default':{}} 中配置
ENGINE': 'django.db.backends.mysql', 'NAME': 'day55', #数据库名 'HOST':'127.0.0.1', 'PORT':3306, 'USER':'root', 'PASSWORD':'123'
2.替换数据库 改成mysql的
方式1:在你的项目文件夹下面的__init__.py
方式2:也能够在你的应用文件夹下面的__init__.py
import pymysql
pymysql.install_as_MySQLdb() # 告诉django用pymysql代替mysqldb链接数据库
3.建立表
必定要继承models.Model
from django.db import models # Create your models here. class MYSQL(models.Model): id=models.AutoField(primary_key=True) username=models.CharField(max_length=255) password=models.CharField(max_length=255)
4.在配置完 models以后
能够在class 输入数据库迁移命令
python3 manage.py makemigrations 将你的数据库变更记录到一个小本本上(并不会帮你建立表) python3 manage.py migrate 将你的数据库变更正在同步到数据库中
建立对象
对象=.表.object.create(*kwargs)
查询对象
对象=.表.object.filter(过滤条件) <QuerySet [<XXX: XXX object>]>
m1=models.XXX.filter(username=username,password=password) m1=models.XXX.all()
#建议不要使用get,get要确保 查出来对象必须只有一个,不然异常
改
m1=models.XXX(username=username,password=password) m1.save() m1=models.XXX.filter(username=username,password=password) m1.update()
删:
jqueryset 能够经过delete
m1=models.XXX.objects.filter(username="我是一天个哈哈哈") m1.delete()