Python_Django开发web_2

来源:互联网 发布:mac系统怎么关闭程序 编辑:程序博客网 时间:2024/05/20 05:31
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)#1form = 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 settingsfrom 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'    }}

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

原创粉丝点击