linux
python 2.7
django 1.11.3
创建项目:django-admin.py startproject myproject #myproject为你的项目目录名
进入项目目录:cd myproject
#在项目下创建一个disk应用: python manage.py startapp mydisk
目录结构如下:
打开mysite2/mysite2/settings.py文件,将disk应用添加进去(通过vim命令编辑settings.py文件 可以百度vim命令用法):
Application definition
INSTALLED_APPS
=
(
'django.contrib.admin'
,
'django.contrib.auth'
,
'django.contrib.contenttypes'
,
'django.contrib.sessions'
,
'django.contrib.messages'
,
'django.contrib.staticfiles'
,
'mydisk'
,
)
设计Model(数据库)
打开myproject/mydisk/models.py文件,添加如下内容(如上 通过vim命令即可)
1 2 3 4 5 6 7 8 9 |
|
创建两个字段,username 用户存放用户名,headImg 用户存放上传文件的路径。
创建网站管理用户
下面进行数据库的同步:python manage.py migrate #django1.9之前版本可用python manage.py syncdb
创建视图
1、打开myproject/mydisk/views.py 文件(通过vim编辑)
1 2 3 4 5 |
|
2、创建注册页面
先在myproject/mydisk/目录下创建templates目录,接着在myproject/mydisk/templates/目录下创建register.html 文件:
可在vim 插入模式下将下面复制粘贴 然后esc + wq退出
1 2 3 4 5 6 7 8 9 10 11 |
|
创建项目:django-admin.py startproject myproject #myproject为你的项目目录名
进入项目目录:cd myproject
#在项目下创建一个disk应用: python manage.py startapp mydisk
目录结构如下:(apps.py是后面手误创建了)
打开mysite2/mysite2/settings.py文件,将disk应用添加进去(通过vim命令编辑settings.py文件 可以百度vim命令用法):
Application definition
INSTALLED_APPS = (
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'mydisk',
)
设计Model(数据库)
打开myproject/mydisk/models.py文件,添加如下内容(如上 通过vim命令即可)
from django.db import models
# Create your models here.
class User(models.Model):
username = models.CharField(max_length = 30)
headImg = models.FileField(upload_to = './upload/')
def __unicode__(self):
return self.username
创建两个字段,username 用户存放用户名,headImg 用户存放上传文件的路径。
下面进行数据库的同步:python manage.py migrate #django1.9之前版本可用python manage.py syncdb
创建视图
1、打开myproject/mydisk/views.py 文件(通过vim编辑)
from django.shortcuts import render,render_to_response
# Create your views here.
def register(request):
return render_to_response('register.html',{})
2、创建注册页面
先在myproject/mydisk/目录下创建templates目录,接着在myproject/mydisk/templates/目录下创建register.html 文件:
可在vim 插入模式下将下面复制粘贴 然后esc + wq退出
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title></title>
</head>
<body>
<h1>register</h1>
</body>
</html>
3、设置模板路径(1.8版本后不设置好像也ok)
打开myproject/myproject/settings.py文件,在底部添加:
from
django.shortcuts
import
render,render_to_response
# Create your views here.
def
register(request):
return
render_to_response(
'register.html'
,{})
4、设置URL
from django.contrib import admin
from django.conf.urls import include,url
from mydisk import views
urlpatterns = [
url(r'^admin/', admin.site.urls),
url(r'^mydisk/', views.register),
]
5.启动服务 python manage.py runserver 10.12.142.90:8001 (其中10.12.142.90是我服务器的ip)
1 2 3 4 5 6 7 8 |
|
出现如下界面:
我们只是把过程串了起来,细心你一定发现,我们的register.html 文件,并没有创建用户提交的表单,views.py文件中也并没有对用户提交的信息做处理。下面我们就针对这两个文件进一步的补充。
打开myproject/mydisk/templates/register.html 文件 (通过vim编辑)
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title></title>
</head>
<body>
<h1>register</h1>
<form method="post" enctype="multipart/form-data" >
{{uf.as_p}}
<input type="submit" value="ok"/>
</form>
</body>
</html>
打开myproject/mydisk/views.py 文件:
from
django.shortcuts
import
render,render_to_response
from
django
import
forms
from
django.http
import
HttpResponse
# Create your views here.
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():
return
HttpResponse(
'upload ok!'
)
else
:
uf
=
UserForm()
return
render_to_response(
'register.html'
,{
'uf'
:uf})
再次刷新http://10.12.142.90:8000/mydisk/ 页面
其中会抛出一个错误,这个错误比较友好,所以不是我们操作过程中的小错误。
打开myproject/myproject/settings.py文件,将下面一行代码注释:
1 2 3 4 5 6 7 8 |
|
将数据写入数据库
虽然已经实现了数据的提交,但用户名与文件并没有真正的写入到数据库。我们来进一步的完善myproject/mydisk/views.py 文件:
#coding=utf-8
from
django.shortcuts
import
render,render_to_response
from
django
import
forms
from
django.http
import
HttpResponse
from
disk.models
import
User
# Create your views here.
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})
再次刷新http://10.12.142.90:8001/mydisk/ 页面,完成文件的上传。