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' }}
然后我们就可以操作数据库了。
阅读全文
0 0
- Python_Django开发web_2
- Python_django
- python_django
- Python_Django-1
- Python_Django-2
- Python_Django-3
- Python_Django-4
- 安装Python_Django
- Python_Django 使用easuUI的Layout(布局)和Tree(树)的使用
- 开发
- 开发!
- 开发
- 开发
- 开发
- 开发
- 开发........
- 开发
- 开发
- 关于NOIP出山寨数据之后的第一波小总结
- C#取两个时间的时间差并去除非工作日
- js 实现多选框(复选框) 和单选框,下拉框功能完整示例代码附效果图
- 标识符和关键字
- OpenGL ES渲染管线与着色器
- Python_Django开发web_2
- ckplayer 播放视频
- 进程调度
- 核心处理:使用List.subList(int start,int end);进行段位截取。 [java] view plain copy import java.util.ArrayList;
- h5+css3 登录页
- echart3实用技巧整理
- 51nod1423 最大二“货”
- 解决firefox设置不自动更新后仍然自动更新问题
- Mongodb数据导出和导入