Django初学者指南

大体流程: 


Urls.py 产生url映射到 Views.py , 然后 View.py 从models.py 处获得数据,利用获得的数据填充templates中的html文件,产生完整的response返回给客户端

MTV模式:

Model:模型,Django内置ORM与数据库API的连接,使得操作数据库类似于操作Python的类

Template:模版,静态文件,其中可以嵌套Django的内置语言以填充数据,也可以实现一些便利的操作如循环遍历、条件判断

View:视图,通过url的映射,根据不同的Request给出不同的Response

其实就类似于MVC模式

具体细节:


1.每一个app都需要在项目的setting.py中注册,templates有默认路径,不过每一个不同的app可以有不同的templates文件夹,但是要标明具体路径
2.一旦models.py发生变化,需要在终端处python3 manage.py makemigration -> python3 manage.py migrate
3.models.py中的类需要在admin.py中注册 -> admin.site.register(classname)
4.render(request, templateFile,dictionary)
5.保存数据:
classname.objects.create(**formdata.cleaned_data)

 

模版

重写ListView中的get_query函数以使用as_view()
def get_query(self):
    Users = Classname.objects.values(“username”,”password”).distinct()
    Return Users

{% load staticfiles %}导入静态资源信息
{% static “css/hw_index.css” %}读取静态资源文件内容
{% for type in type_list %} {% endfor %}
{% if name.type in type.type %} {% endif %}
{{ type.type }}

常用内置标签
For 
If
csrf_token
Url
With
Load
Static
Extends
Block


Classname.objects.filter(username=“star”).update(username=“starmoon”)
Classname.objects.all().delete()
Classname.objects.get(name=“star”).delete()
Classname.objects.filter(name=‘star’).delete()

Filter模糊查询:匹配符(p84)

表单
Class ProductForm(forms.form)
    name = forms.CharField(max_length=20,label=“name”)
Def index(request):
    product = ProductForm()
    return render(request,”data_form.html”,locals())
{{ product.as_table }}
{{ product.as_ul }}
{{ product.as_p }}
内置的表单字段与共同参数p94

Class ProductMdelForm(forms.ModelForm):
    prodectID = forms.CharField(max_length=20,label=“ID”)
    class Meta:
        model = Product
        fields = [“name”,”weight”,”size”]
        exclude = []
        labels = {“name”:”Product Name”,”weight”:”Product weight”}
        widgets = {name:forms.widgets.TextInput(attrs={“class”:”c1”})}

你可能感兴趣的:(闲来无事)