DJango 前三天小结
一 DJango 所有命令:
1下载:
- 控制台:
pip install django==1.11.- pip install django==1.11. -i 源
解释器:
找到解释器,点击加号搜索django
2创建项目;
- 控制台:
当前创建文件的目录 django-admin startproject 项目名称 (这里创建的项目没有模板文件templates)
pc创建:
file-->newprojet-->django-->(里面可以直接编辑templatesw和app文件名)
3 启动项目:
- 控制台:
- 切换到项目目录 python manage.py runserver #127.0.0.1:(默认的)
- ip和端口可以改: .............192.168.1.1:#192.168.1.1:
4 创建app :
- 控制台:
- 使用python自带控制台就不需要定义当前目录了,直接 manage.py startapp app文件名
pc:
Tools-->run manage.py task -->startapp app名字
app文件下的py文件:
views.py (写函数)
models(orm相关)
admi.py(管理后台)
apps.py
tests.py(测试用)
5 数据库迁移:
- python manage.py makemigrations #会在migration文件下产生一个py文件将models变更记录保存
- python manage.py migrate # 同步到数据库
二 django srttings配置
- NSTALLED_APPS = [
- 'app01' 或者 ‘app01.apps.App01Config’(用pc创建会自带这个)
- ]
- 数据库的配置
- ENGINE: mysql
- NAME: 数据库名称
- HOST: IP
- PORT:
- USER: 用户名
- PASSWORD: 密码
- 静态文件
- STATIC_URL = '/static/' # 别名 注意你的静态文件外接开头都要使用/static/
- STATICFILES_DIRS = [ os.path.join(BASE_DIR,'static'),(可以配置多个,但他会按顺序找,找到一个就不找了)
os.path.join(BASE_DIR,'static1'), ]
- 中间件:
- 注释csrf的中间件 ——》 可以提交POST请求
- TEMPALTES
- ```
- 'DIRS': [os.path.join(BASE_DIR, 'templates')] # 检查你的模板配置是不是这个路径,一般没错
- ```
三 django 使用mysql数据库:
1控制台创库
2 配置; django默认使用他自己的 sqlite3数据库
3 告诉django 使用pymysql连接数据库(
在settings.py同级目录下__inin__,py中写
- import pymysql
- pymysql.install_as_MySQLdb()
4 在app下的models.py中写类(继承models.Model):
- from django.db import models
- class BookManage(models.Model):
- pid=models.AutoField(primary_key=True) # 设置主键 并且让其自增
- name=models.CharField(max_length=,unique=True) #设置名字字段,并且让其唯一
- def __str__(self):
- return self.name
5 执行数据库迁移的命令
- python manage.py makemigrations # 将models变更记录保存到migrations
- python manage.py migrate # 将变更同步到数据库中
四 get和 post
get: 获取一个页面
在地址栏里输入回车
form 表单 默认就是get
a标签
重定向也算是get(跳转)
get提交数据: 127.0.0.1:8000/edit_publisher/?pk=3&k1=v1
获取get数据: request.GET .get(''pk'') #返回的是一个类似字典的东西 所以可以直接通过get(键)来获取数据 ,也可以通过索引来取
post: 提交数据:
form表单
五 orm (对象关系映射)
对应关系:
类------>表
对象----->数据
属性----> 字段
- from app01 import models # 先导入modes模块
曾:
- models.Publisher.objects.create(name='xxxxx出版社') ——》返回字符串对象
查:
- models.Publisher.objects.get(pk=) —— 》返回字符串对象 #dasdggfrg <class 'app01.models.BookManage'>
- models.Publisher.objects.filter(pk=) ——》 返回单行对象列表
- models.Publisher.objects.all() ——》 返回全部对象列表
删:
- models.Publisher.objects.get(pk=).delete()
- models.Publisher.objects..filter(pk=).delete()
改:
- obj = models.Publisher.objects.get(pk=) # 返回的是对象
- obj.name = 'xxxxx'
- obj.save()
六 模板语法:
- render(request,'模板的文件名',{ 'new_name': 'xxxxx','all_publisher' : all_publisher })
- .变量
- {{ new_name }} ——》 xxxxx
- .for循环
- {% for i in all_publisher %}
- {{ forloop.counter }}
- {{ i }}
- {{ i.name }}
- {{ i.pid }} {{ i.pk }}
- {% endfor %}
DJango 前三天小结的更多相关文章
- day 53-1 Django基础三之视图函数
Django基础三之视图函数 本节目录 一 Django的视图函数view 二 CBV和FBV 三 使用Mixin 四 给视图加装饰器 五 Request对象 六 Response对象 一 Dja ...
- day 67 Django基础三之视图函数
Django基础三之视图函数 本节目录 一 Django的视图函数view 二 CBV和FBV 三 使用Mixin 四 给视图加装饰器 五 Request对象 六 Response对象 一 Dja ...
- 用python+selenium抓取知乎今日最热和本月最热的前三个问题及每个问题的首个回答并保存至html文件
抓取知乎今日最热和本月最热的前三个问题及每个问题的首个回答,保存至html文件,该html文件的文件名应该是20160228_zhihu_today_hot.html,也就是日期+zhihu_toda ...
- <记录学习>(前三天)京东页面各种注意点
培训学校第1到3天先学习HTML现在流行的是HTML5,目前学习的是HTML5规范.(给有基础一定的人学习)前三天学习的是京东页面的编写,和以前写的不同,页面看上去和自己写的一样,但老师讲的还是有很多 ...
- jq最新前三篇文章高亮显示
/*---------最新前三篇文章高亮显示-------------*/ function latest(){ var color_arr=new Array( "blue", ...
- NOIP2008提高组(前三题) -SilverN
此处为前三题,第四题将单独发布 火柴棒等式 题目描述 给你n根火柴棍,你可以拼出多少个形如“A+B=C”的等式?等式中的A.B.C是用火柴棍拼出的整数(若该数非零,则最高位不能是0).用火柴棍拼数字0 ...
- 【HDOJ】前三百留念
4个月不到的时间,终于刷到了HDOJ前三百.肯定还不够,好多基本的算法还不了解.还得继续学习.以此留念,假期目标是前一百.
- 对编程语言的需求总结为四个:效率,灵活,抽象,生产率(C++玩的是前三个,Java和C#玩的是后两个)
Why C++ ? 王者归来(转载) 因为又有人邀请我去Quora的C2C网站去回答问题去了,这回是 关于 @laiyonghao 的这篇有点争议的博文<2012 不宜进入的三个技术点>A ...
- 使用批处理bat作为日期系统日期的前三天
在管理server它经常是依据一天来推断载日期系统日志文件,例如,上周五,周一的需要上传日志.上传日志的日期前一天,日志文件命名的日期.这需要获得的日期的前三天.或之前n当天日期. 批量绑定vbs可以 ...
随机推荐
- 跟随我在oracle学习php(11)
数组专题 数组遍历: 1,普通for循环,经常用的数组遍历 var arr = [1,2,0,3,9]; for ( var i = 0; i <arr.length; i++){ consol ...
- spring mvc将对象转换为json返回的配置
之前在spring 3中用的好好的MappingJacksonHttpMessageConverter转换器,将对象转为json响应给浏览器,在spring4中,报错. Cannot create i ...
- egret 简单的一笔画算法,在wing中可以直接跑(以后玩这类游戏就有个作弊器了)
/** * 在Main中创建游戏场景 * Create a game scene */ private createGameScene() { MtwGame.Instance.init(this.s ...
- Vue项目的打包
vue项目的打包 更改config文件夹下的index.js里的assetsPublicPath路径 将 “/” 改为 “./” build: { env: require('./prod. ...
- 60行python代码分析2018互联网大事件
2018年是改革开放四十周年,也是互联网发展的重要一年.经历了区块链,人工智能潮的互联网行业逐渐迎来了冬天.这一年里有无数的事件发生着,正好学了python数据处理相关,那么就用python对18年的 ...
- Spring MVC流程
这是spring mvc框架结构图,图片是很早在网上撸过来的,具体在哪忘了…… 早期学习Springmvc 并没有具体了解过,只知道这样用很爽,最近了解下基本结构流程及组件所在…… 执行流程 Spri ...
- 怎么单独为ionic2应用的某一组件设置两个平台一致的样式
今天在继续项目的过程中,发现ionic2在显示样式上是根据不同的平台采用不同的样式,使在不同平台上的应用保持相应的风格,于是问题来了. ios的风格比较好看,android的风格略微不如ios的,所以 ...
- bom与dom的区别
文档对象模型(Document Object Model,简称DOM),是W3C组织推荐的处理可扩展标志语言的标准编程接口.Document Object Model的历史可以追溯至1990年代后期微 ...
- 巧用std::shared_ptr全局对象释放单例内存
巧用std::shared_ptr 单例的使用相对比较广泛,但是需要在程序退出前调用它的析构函数对数据进行释放,常规做法是在main函数末尾进行释放工作, 但是这样相对比较繁琐,因此便有了利用全局变量 ...
- SpringCloud 教程
参考http://blog.csdn.net/forezp/article/details/70148833 出自方志朋的博客