Django 笔记(来源于讲师)以及常见问题的解决

写1.Django加载静态文件

1.首先在项目的根目录下,新建static文件夹

2在settings.py中加入这两句话。表明从项目的跟目录找static文件夹

3.在HTML文件中导入{% load staticfiles %} 并且做出以下修改

2.快速将HTML文件返回到页面中。(这种做法并不用先去View函数)

3.安装Pillow 图像处理库

Pillow中最重要的类就是Image,该类存在于同名的模块中。可以通过以下几种方式实例化:从文件中读取图片,处理其他图片得到,或者直接创建一个图片。

4.配置Template中的HTML文件放到相对路径下,而不是绝对路径。

 

5.Django中将sqlite3数据库换成Mysql数据库方法

1.将settings配置中改为

2.安装mysql驱动

安装Mysql驱动详见: http://blog.csdn.net/u012882134/article/details/51934165

安装该下载文件 即可解决

6.Django 中数据库常用类型

# models.ForeignKey 外键
# models.DataTimeField 时间类型
# models.IntegerField 整型
# models.IPAddressField IP类型
# models.FileField 文件上传类型
# models.ImageField 图片类型

models.TextField  文本类型

models.CharField 字符串类型一般都在创建时写入max_length参数。设置可以为空和设置默认值 null = True, blank=True, default = ''
models.EmailField 邮箱类型

models.URLField url类型 存储URL的字符串,默认长度200;verify_exists(True),检查URL可用性

可以自定义主键

 7.model中继承原有的user 字段

 

 

7.web攻击与防范

1.sql注入攻击与防范

sql注入危害

1.非法读取、篡改、删除数据库数据

2.盗取用户各类敏感信息获取利益

3.通过修改数据库来修改网页内容

4.注入木马等等

注入方法: 比如直接在form表单或者是URL中写sql语句。

2.xss攻击的原理与防护

xss 跨站脚本攻击(Cross Site Scripting)的危害

1.盗用各类账号、如用户网银账号、各类管理员账号

2.盗用企业具有商业价值的资料

3.非法转账

4.控制受害者机器向其它网站发起攻击、注入木马等。

csrf 攻击与防护

8.Django Ajax 请求后端

1.HTML

<div id = 'message' style="margin-top: 500px;">Initial text</div>

2.JS

<script>
$(document).ready(function() {

   $("#message").click(function(){
        $.ajax({
             cache: false,
             type: "POST",
             url:{% url 'edit_favorites' %},
             data: {
                    'video': $('#test').val() // from form
                    },
             async:true,
            beforeSend:function(xhr, settings){
                xhr.setRequestHeader("X-CSRFToken", "{{ csrf_token }}");
            }, //CSRF必须加上
             success: function(){
                 $('#message').html("<h2>Contact Form Submitted!</h2>")
             }
        });
        return false; //<---- move it here
   });

});
</script>

3. URL配置

url(r'^edit_favorites/', edit_favorites, name='edit_favorites'),

4.View函数配置

def edit_favorites(request):
    if request.is_ajax(): #判断请求是否是ajax
        if request.method == 'GET': #判断是否是get
            message = "Yes, AJAX is get!"
        elif request.method == 'POST': #判断是否是post
            message = 'Yes, AJAX is post'
    else:
        message = "Not Ajax"
    return HttpResponse(message)

5.Django新建字段连接User找到不到user_id

应该在model的外键对应的数据库字段的属性名后面 加_id

原文地址:https://www.cnblogs.com/zhaoyingjie/p/6278904.html