python之类-django进阶

内容回顾
django引用静态文件的话需要在setting是里面设置

STATIC_URL = '/static/'
STATICFILES_DIRS =(
    os.path.join(BASE_DIR,'static'),
)

然后再html文件里面引入static中的文件时

<script src="/static/js/jquery-2.2.0.js"></script>
#直接写静态目录就可以

但是有时候如果要修改静态目录,那么但模板文件众多时,就比较麻烦了。
所以可以直接在html文件中应用STATIC_URL 这个变量
首先需要在settings里面的TEMPLATES加上django.core.context_processors.
然后就可以引用了。

{#<h1>{{ STATIC_URL }}</h1>#}

或者加载staticfiles ,然后就可以使用了

{% load staticfiles %}
{#<h2>{% static "js/jquery-1.8.2.min.js" %}</h2>#}

django From 补充

如果一个form类里面放一个静态字段,那么只会在程序第一次运行的时候执行。
因为之后对象实例话只执行构造函数。不会重新读form类。
所以要把读取那些字段的方法也要放到init中去。
init 要执行父类方法,要用super。
如下

class login_form(forms.Form):
    username = forms.CharField(required=True)
    password = forms.CharField(widget=forms.PasswordInput())
    f = open("data")
    data = f.read()
    user_type_list = json.loads(data)
    f.close()
    user_type = forms.IntegerField(widget=forms.Select(choices=user_type_list))
    def __init__(self, *args, **kwargs):
        super(login_form, self).__init__(*args, **kwargs)
        f = open("data")
        data = f.read()
        user_type_list = json.loads(data)
        f.close()
        self.fields["user_type"].widget.choices= user_type_list

django model补充

上传文件的时候
post方式 。
注意enctype =
request.FILES 用来获取文件

    input_files = request.FILES
    file_obj = input_files.get("f1")  #获取这个name等于f1的文件
    print file_obj.name              输出文件名字
    print file_obj.size              输出文件的大小
    f = open(file_obj.name,'wb')      
    for i in file_obj.chunks():      从chunks里面获取,然后写入
        f.write(i)
    f.close()
return  render(reque

更改表结构时,提示报错,因为django不知道如何对之前的数据进行更改
所以,可以设置新加的数据null=True 或者default=”defalut_value”

url 和模板补充

在urls.py文件里面写一条路由,添加name属性。
url(r'^login/$',views.acc_login,name="login"),
这样在模板文件中就可以引用name属性了。比如在一个form表单里面
action="{% url 'login' %}"
或者
url(r'^article/(\d+)/$',views.article_detail,name="article_detail"),
<a href="{% url 'article_detail' new_article_obj.id %}"> 

还有就是auth模块,认证的时候。
model引用的是User表

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值