对应github链接:https://github.com/pshyms/django/tree/master/liuyanban

第一天

1. 创建一个新项目后,新建一个应用程序
python manager.py startapp message
 
2. 在message同级目录下创建3个目录static, log, media,apps目录,
static:存放静态文件,包括js,css,图片等
log:存放网站日志文件
media:存放用户上传的图片等资源
apps: 用于应用过多时,都放于这个目录下,然后将apps目录右键mark成Source Root
 
3.  存放静态文件
将message_form.html文件放在templates文件夹下
在static目录下新建css目录,并在css目录下新建stylesheet格式的style文件,将message_form.html文件中的<style>标签内容剪切到style.css文件中,首尾<style>去掉,shift+tab使css格式整齐
 
4. 配置django连接mysql
在setting.py大概80行找到DATABASES代码段,默认是sqlites,我们修改为mysql如下,库名要事先写好
 
安装pymysql模块:pip install pymysql
python3 pymysql就是MySQLdb,基本使用方法:import pymysql as MySQLdb
 
django 中使用方法,在项目djangostart目录里的__init__.py中加入
import pymysql
pymysql.install_as_MySQLdb()
 
 
执行python manage.py migrate 首次执行,生成项目需要的一些基本数据库
 
 
 
5. 配置message_form.html页面展示出来
 
5.1 message/views.py中添加如下代码:
 
5.2 djangostart/urls.py中添加代码
 
5.3  DjangoGetStarted/settings.py 57行左右修templates代码块中的DIRS为如下,来指定模板位置
 
5.4 页面出来后,没css样式,原因是css文件没找到,这是因为在settings.py中我们只是指定了静态文件目录名
但是没指定静态文件查找的跟路径,所以还需添加如下代码
 
 
 
 
 

 第二天  ORM

 

一. models.py中定义数据库中数据名和各字段

 
1. 主键可以不定义,默认会生成一个id主键,当然也可以自定义主键,例如这里
 
注意:
1) 必须写default值
2) verbose_name相当于起一个别名,方便阅读
3)如果是字符字段,必须写最大长度
4) 定义主键要写关键字primary_key
5) null = True, blank= True表示字段可以为空。 default和blank的更改是python层面的约束 不需要迁移,因为他们不影响数据库;但是如果把default=''改为Null=True,表允许为空,虽然效果一样,但需要迁移数据库
 
 
2. 你可以在任意一个模型类中使用meta类,用来设置一些与特定模型相关的选项
    其中ordering值的类型必须是一个元组或者列表
    db_table用来自定义表名
 
 
3. 在settings.py中第40行要把应用程序的名字加到INSTALLED_APPS代码段中
 
 
 

二. django model的增删改

 
1. 先用navicat添加一条测试数据,例如
 
 
2. 在message/views.py中修改为如下
 
说明:
ORM中默认的数据管理器是objects, 常用的方法有all(),filter(),delete()
1. all()将所有数据返回成一个queryset类型,可遍历操作,如上例
2. filter()取出指定条件值,如filter_message = UserMessage.objects.filter(name='jack', address='西安'),同样可进行遍历操作
3.  删除操作很简单,比如如果只有一条数据,all_message.delete()即可,如果是多条,上图一样来个for循环。需要注意的是只有每次表单提交的时候,删除操作才能生效,因为getform函数引用了request参数。
 
 
 
3. 将数据存入数据库
 
3.1 本地数据存储
可在message/views.py的getform()函数中添加如下代码,使用对象的save()方法即可把数据保存到数据库中
 
 
 
3.2 把html的提交数据保存到数据库
 
1)在message_form.html中指定提交表单发送的地址,action就是指向我们在urls.py中配置的/form/,然后就可以在getform中取到传递的值
 
2)在message_form.html的表单标签</form>上面一行加入{% csrf_token %},否则会报403错误。原因是页面没有进行crsf验证,这是django的安全机制,不允许任意表单都可以往后台提交数据
 
3)request.POST可以把数据取出
 
 
 
 
 
 

 第三天

 

一. URL模板配置

 
本节将介绍url的配置,以及如何将数据库数据填充回前台html页面
 
1. 改写message/views.py中的getform函数如下
 
说明:
1)取出数据,将过滤到的数据赋值给变量message
2)修改return render,增加{"my_message": message},这样会有一个my_message对象随着返回页面,其中名字my_message可以任意写,message为上面的变量
 
 
2. 在前端页面中放入值
在message_form.html中,为input标签添加value,例如修改id = "name"的input标签如下
同样的方法修改邮箱和联系地址的input标签,并且修改textarea标签为
 
之后运行项目,发现原先address为西安的数据就会在页面上显示
 
 
 
3. 常见的几种模板标签介绍
 
3.1 if - else,改写姓名的<input>标签如下
如果有name等于jack1,页面中姓名输入框就显示 “对应昵称:天涯”,否则显示 "没找到昵称"
 
 
3.2 ifequal 和 ifnotequal,改写地址的<input>标签如下
 
 
3.3 slice,改写email<input>标签如下
如果email的前三位等于123,那么在网页上显示too simple,否则显示good email
 
 
 
 

二. URI别名设置技巧

 
1. 在djangostart/urls.py中为uri添加别名
 
2. 修改message_form.html中action的地址
 
这样我们如果修改urls.py中的匹配格式,不需要在修改前端代码中的值
 
 
 
 
 
 

最新文章

  1. 【转】CSRF攻击的应对之道
  2. Flex 加载shp
  3. 自己手写简约实用的Jquery tabs插件(基于bootstrap环境)
  4. java优化占用内存的方法(一)
  5. 我的 ubuntu 12.04.2修复Grub
  6. 数据库CRUD操作
  7. EXT2/EXT3文件系统(一)
  8. 【SSRS】入门篇(三) -- 为报表定义数据集
  9. spring 整合Mybatis 错误:Parameter &#39;items_id&#39; not found. Available parameters are [array]
  10. NodeJs通过镜像下载相关NPM模块
  11. Maven启动Java Web工程,8081和8086端口号被占用
  12. Scrapy定时执行爬取任务与定时关闭任务
  13. linux下jenkins的时区设置问题
  14. Nginx反向代理服务器
  15. Listener 快速开始
  16. Centos中安装perl
  17. Ubuntu下修改CMake版本
  18. struts访问
  19. Redis集群架构【转载】
  20. Svn 提示错误:previous operation has not finished 解决方案

热门文章

  1. SOAP 版本可能不匹配: 出现意外的 Envelope 命名空间 http://schemas.xmlsoap.org/wsdl/
  2. springmvc web.xml配置之 -- ContextLoaderListener
  3. C++ 基类指针,子类指针,多态
  4. JQuery常用函数及功能
  5. 为什么都说UX / UI设计师是最佳工作?
  6. Android 通过adb shell命令查看内存,CPU,启动时间,电量等信息
  7. [Android] 对ImageView设置属性scaleType为FIT_START,如何去掉多余空白
  8. spring常用接口 InitializingBean的作用
  9. 聚合函数 listagg (超出长度限制时xmlagg)
  10. mongodb-win32-i386-3.0.6 使用