Python_Django开发web_2

model query
    根据ID查询的方法 Model.objects.get(pk=id)
    查找所有:Model.objects.all()
    带有条件的查询:
        filter
        exclude
    排序查询:
    order_by()
    分页
        [:]
html django标签
    {% csrf_token %}
    {% url %}
    {% for %} {% endfor %}
    {% if %} {% else %} {% endif %}

模型表单
Django 提供一个辅助类来让你可以从Django 的模型创建表单。

modelForm
        form --> Model
        继承ModelForm,编写其中的内部类
        class Meta:
                model = Student
                fields 包含字段
                exlude 排除字段
        多选:MultipleChoiceField
class StudentForm(forms.ModelForm):
    SEX_CHOICE = (
        ('男', '男'),
        ('女', '女'),
    )
    LIKE_CHOICE = (
        ('体育', '体育'),
        ('美术', '美术'),
        ('音乐', '音乐')
    )
    name = forms.CharField(label='姓名')
    sex = forms.ChoiceField(label='性别', choices=SEX_CHOICE, widget=forms.RadioSelect)
    likes = forms.MultipleChoiceField(label='爱好', choices=LIKE_CHOICE, widget=forms.CheckboxSelectMultiple)


    class Meta:
        model = Student
        fields ='__all__'

这样我们就不用自己在html中画表单了,只要把表单对象传过去就可以在html中使用,同时还提供了许多便利的方法操作相关联的实力类。
比如is_valid()方法就是验证表单是否合法,.save()方法可以直接把数据保存到数据库。

文件上传

            form.FileField() 用于手动编写
            model.FileFileld(upload_to ='' 用在自动保存上传文件)

首先进行上传路径的设置
settings.py:

            MEDIA_ROOT = os.path.join(BASE_DIR, 'upload')
            MEDIA_URL = '/upload/'

配置urls.py

urlpatterns = [
    url(r'^admin/', admin.site.urls),
] + static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT) #<--

我们在创建表单对象的时候代码从#1变成#2

form = StudentForm(request.POST)#1
form = StudentForm(request.POST, request.FILES)#2

表单设置

<form action="addStudent2" method="post" ENCTYPE="multipart/form-data">

models设置

    imgPath = models.FileField(verbose_name='头像', null=True, upload_to='student')

这样我们就可以进行文件上传,表单模型的.save()可以直接进行保存,把文件保存到指定路径,把地址保存到数据库

            if form.is_valid():
                form.save()
                print(stu.imgPath)

配置静态文件
我们在web开发中要用到CSS等文件,在Django中要想调用这些文件,就需要配置一个静态文件夹。
首先是settings.py:

STATICFILE_DIR=(
    os.path.join(BASE_DIR, 'static')
)

STATIC_URL = '/static/'

然后是urls.py

urlpatterns = [
    url(r'^admin/', admin.site.urls),
] + static(settings.STATIC_URL, document_root=settings.STATICFILE_DIR)

配置静态文件和文件上传路径都需要导入两个模块。

from django.conf import settings
from django.conf.urls.static import static

这样我们就可以使用自己配置路径下的文件了。

配置其他数据库
在settings.py中

DATABASES = {
    'default': {
        'ENGINE': '需要的驱动',
        'NAME': '数据库名',
        'HOST': '地址',
        'USER': '用户名',
        'PASSWORD': '密码',
        'PORT': '端口'
    }
}

python自带了几个常用的数据库驱动,比如Mysql,MySQLdb是自带的一个本地驱动,但是MySQLdb暂不支持Python3之后的版本,所以我们需要其他的驱动,这里选择mysqlclient这个驱动,django为这个驱动提供了适配器,所以只需要安装即可使用。
使用PIP安装

pip install mysqlclient

安装后配置文件

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.mysql',
        'NAME': 'shopsys_db',
        'HOST': 'localhost',
        'USER': 'root',
        'PASSWORD': 'root',
        'PORT': '3306'
    }
}

然后我们就可以操作数据库了。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值