初识Django并创建一个上传文件的项目

 

 初识Django并创建一个上传文件的项目

author:侠仔
Django是一块非常牛逼的重量级WEB框架,基于Python,采用了MVC的软件设计模式,于2008年9月发布了第一个正式版本1.0.
好了,词穷了,编不下去了,开始使用它吧.
确保已经在你的windows上,使用pip install django来安装一个最新版的django.这里每一步都给出图片说明,希望对初学者有帮助.

1.使用Django创建一个页面

1.1开始部署了,本次使用基于pycharm

新建一个Django项目,在location这里,需要制定你项目的地址和目录的名称,create

新建项目

1.2新建的项目里面,没有任何的应用,需要新建一个应用

选中manage.py,单击工具-run manage.py tast…

新建项目

出现的命令行,输入startapp web11,一个名称为web11的应用就创建好了

新建项目

1.3创建好应用之后,在全局设置文件settings.py的INSTALLED_APPS的后面一行,增加web11到最后一行.让Django知道你增加了一个应用web11,否则将有可能无法启动该应用.

新建的项目

1.4进入web11这个应用,编辑视图文件view.py

初学者调试,先用render_to_response这个模块,该模块需要手工导入
然后,在编写一个视图函数index,request这个参数是系统默认会传入的值.首先测试返回一个index.html的页面
from django.shortcuts import render,render_to_response
def index(request):
    return render_to_response('index.html')

新建项目

1.5配置路由urls.py

添加了视图函数,还需要有相应的调用函数的模块,这里,urls.py这个路由控制器,就是调用函数的入口.
首先依然是要从应用web11里面导入视图模块views,否则是没有办法使用视图函数index的
然后就是添加路由.url()左边的是路由的正则表达式(这里使用index/,r”的意思是,使用原字符串,不进行转义),右边就是对应的视图函数view.index.

新建项目

1.6配置模板templates

如果各位亲使用没有templates目录的话,手动新建一个即可.
新建该目录后,创建一个index.html,这个是上面视图函数会渲染到的模板,这里内容就写 this is awen’s Django.

新建项目

1.7启动服务manage.py

如果是使用dos启动,就进入manage.py所在的目录运行python manage.py runserver 0.0.0.0:8002即可
使用pychram,需要在下图的结构编辑-script parameters里面增加runserver 0.0.0.0:8002 再执行manage.py

新建项目

1.8浏览器进入http://127.0.0.1:8002/index

如果上述的自检通过,没有语法错误,那么出现starting development server at http://0.0.0.0:8002,Quit the server whit CTRL-BREAK,表示你的服务已经成功启动
在浏览器输入http://127.0.0.1:8002/index/,出现我们模板设定的This is Awen’s Django,说明你的服务调试成功,没问题.

新建项目

实战开始

2.创建一个上传文件的项目

2.1先创建一个model,起名User

实际上,在django中,采用对象关系映射ORM的方式,将数据库的表视作一个对象,抛开繁琐的sql语句,使得数据库的的修改,就像直接操作对象一样方便,无论是使用什么数据库,都能从容面对
一个数据库表对象就是一个类,这里User就是数据库中的一个表web11_user,表里有2个字段,分别是字符串类型和文件类型
class  User(models.Model):
    username = models.CharField(max_length = 32)
    headImg = models.FileField(upload_to='./upfile/')

    def __unicode__(self):
        return self.username

django实战

2.2创建数据库的本地映射文件,并映射到数据库(使用默认的测试库sqlite3.db)

##创建本地映射文件
python manage.py makemigrations
##映射本地文件到数据库
python manage.py migrate

django实战

2.3编辑视图文件,加入UserForm窗体和register视图函数

##导入相应模块
from web11.models import User
from django import forms
from django.http import HttpResponse
##增加UserForm窗体和register视图函数
class UserForm(forms.Form):
    username = forms.CharField()
    headImg = forms.FileField()

def register(request):
    if request.method == "POST":
        uf = UserForm(request.POST,request.FILES)
        if uf.is_valid():
            username = uf.cleaned_data['username']
            headImg = uf.cleaned_data['headImg']
            user = User()
            user.username = username
            user.headImg = headImg
            user.save()
            return HttpResponse('upload ok!')
    else:
        uf = UserForm()
    return render_to_response('register.html',{'uf':uf})

django实战

2.4添加路由upfile,指向视图函数register

urlpatterns = [

    url(r'^upfile/', views.register),

]

django实战

2.5将setting.py的django.middleware.csrf.CsrfViewMiddleware注释掉

实际测试中,如果不注释,会报错
Forbidden (403)
 CSRF verification failed. Request aborted.
 Help
 Reason given for failure:
 CSRF token missing or incorrect.

django实战

2.6 启动manage.py服务,并打开浏览器输入http://127.0.0.1:8002/upfile/,并上传本地的一个图片

django实战

2.7查看数据库中web11_user表的记录情况

django实战

谢谢观赏

Powered by 侠仔 @2017-7-16

 

赞(0) 打赏
未经允许不得转载:http://www.yueguangzu.net逗逗网 » 初识Django并创建一个上传文件的项目
分享到: 更多 (0)

评论 1

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址
  1. #1

    侠仔牛逼了

    三胖6年前 (2017-12-18)回复

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏