Python学习过程遇到的坑--项目(1)

1.HTML导入CSS和JS
{% load static %}<!doctype html><html><head><meta http-equiv="Content-Type" content="text/html; charset=utf-8" />    <title>首页</title><link rel="stylesheet" type="text/css" href="{% static 'css/style.css' %}"><!-- <link rel="stylesheet/less" type="text/css" href="css/style.less" /> --><script type="text/javascript" src="{% static 'js/jquery-1.7.2.min.js' %}"></script><script type="text/javascript" src="{% static 'js/all.js' %}"></script></head>
2.django如何获取数据库中所有的区域并显示在前端下拉框
 <select class="form-control" id="area-id" name="area_id">
                                {% for obj in area %}
                                    <option value="{{ forloop.counter }}">{{ obj }}</option>
                                {% endfor %}
                            </select>
3.下拉框显示的内容全部为area object

尝试了多种办法无果,最后解决了,处理办法是修改models.py,原来的model:

class TechnicistLocation(models.Model):  # 技术人员位置

    area = models.CharField('位置名称', max_length=20

    class Meta:

        verbose_name_plural = '技术人员位置'
        app_label ="schedule"

    def __unicode__(self):
        return self.area

修改后的model:

class TechnicistLocation(models.Model):  # 技术人员位置

    area = models.CharField('位置名称', max_length=20)

    class Meta:

        verbose_name_plural = '技术人员位置'
        app_label ="schedule"

    def __str__(self):
        return self.area 
4.上传图片一直提示403

在表单处添加{% csrf_token %}

5.上传图片后,web开发者工具没有报错,但是数据库并没有图片信息

后台代码:

# 上传新房源,@csrf_exempt 注解来标识一个视图可以被跨域访问
@csrf_exempt
def my_new_house(request):

    if request.method == 'GET':

        return render(request, 'newhouse.html', data)

    if request.method == 'POST':
        #获取上传的图片信息,此处的index_img_url只是一个变量名称,和model中的变量名没有关系!!!
        #get到的house_image也是我们获取到图片后取得名字,该名字需要和web前端变量名称保持一致
        index_img_url = request.FILES.get('house_image')
       #将获取到的图片信息插入到数据库中
        house = House.objects.create(
            index_img_url=index_img_url
        )
        return JsonResponse(data)

前端代码:

<form id="form-house-image" action="/app/addnewhouse/" method="post" enctype="multipart/form-data">
    #为在用户提交表单的时候防止跨站攻击,在form表单处都应该添加{% csrf_token %}
    {% csrf_token %}
    <input type="hidden" name="house_id" id="house-id" value="">
    <li>
        <div class="house-title">
            <h3>添加图片</h3>
        </div>
        <div class="house-content">
            <div class="house-image-cons">

            </div>
            <div class="form-group">
                <label for="house-image">选择图片</label>
                #request.FILES.get('house_image')中的变量名称house_image
                #就是我们前端上传图片后定义的定义的name
                #此处的name和id应该保持一致
                <input type="file"  name="house_image" id="house-image">
            </div>
            <input type="submit" class="btn btn-success" value="上传">
        </div>
    </li>
</form>
6.如何取消JS中的注释

// 双斜杠 注释 和取消注释都是ctrl+/ /* 注释内容 */ 注释:ctrl+shift+/ 取消注释:ctrl+shift+\

7.CheckBox取值
tags = Request.POST.getlist('tags')
8.如何导入前端JS和CSS
{% load static %}
#按照以下方式导入!自己经常在这个位置出错,一定要注意
<script src="{% static 'js/s/jquery.min.js' %}"></script>
<script src="{% static 'js/s/bootstrap.min.js' %}"></script>
<link href="{% static 'css/s/bootstrap.min.css' %} }" rel="stylesheet">
9.取消git分枝合并
git reset --hard HEAD

10.str returned non-string (type int)

原因:错误的给整型number添加了如下代码:

def __str__(self):
    return self.number
11.有时开发一个项目后需要测试流程是否正确,但是需要一直重复输入数字,为了调试,可以按如下方式免除重复输入
<input type="radio" name="lease" value="1" checked/>整租&nbsp&nbsp&nbsp&nb
<input value="0" type="text" class="form-control-a" name="floor" id="house-title" required>

猜你喜欢

转载自blog.csdn.net/u014229742/article/details/80988902
今日推荐