建立django目录,为了独立区分app和主站的关系,需要把app完全和主站分离
app/views.py
from django.shortcuts import render
from django.http import HttpResponseRedirect,HttpResponse
import os
from app.forms import MomentForm
from django.core.urlresolvers import reverse
from django.shortcuts import render # Create your views here.
def moments_input(request):
if request.method =='POST':
form = MomentForm(request.POST)
if form.is_valid():
moment = form.save()
moment.save()
return HttpResponseRedirect(reverse('welcome'))#reverse连接urls内的name值,来进行反向查找网址
else:
form = MomentForm()
PROJECT_ROOT = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
return render(request,os.path.join(PROJECT_ROOT,'app/templates','moments_input.html'),{'form':form}) #连接到模版文件路径 def welcome(request): return HttpResponse('HELLO')
app/urls.py管理app中的url映射
#!/usr/bin/env python
# -*- coding:utf-8 -*-
from django.conf.urls import url
from . import views urlpatterns = [
url(r'moments_input',views.moments_input),
url(r'wc',views.welcome,name='welcome'),# 添加name值,以便于reverse查找
]
django/urls.py
from django.conf.urls import url
from django.contrib import admin
from django.conf.urls import include
urlpatterns = [
url(r'^admin/', admin.site.urls),
url(r'^app/', include('app.urls')), # 建立与app/urls的路由建立连接关系
]
app.models.py 建立模型
# _*_ coding: utf-8 _*_
from django.db import models # Create your models here. KIND_CHOICES = (
('python技术','python技术'),
('数据库技术','数据库技术'),
('经济学','经济学'),
('文体资讯','文体资讯'),
('个人心情','个人心情'),
('其他','其他'),
) class Moment(models.Model):
content = models.CharField(max_length=200)
user_name = models.CharField(max_length=20,default='匿名')
kind = models.CharField(max_length=20,choices=KIND_CHOICES,default=KIND_CHOICES[0])
定义表单类app/form.py
#!/usr/bin/env python
# -*- coding:utf-8 -*-
from django.forms import ModelForm
from app.models import Moment class MomentForm(ModelForm):
class Meta:
model = Moment # 连接数据库与表单的关系
fields = '__all__' # 导入所有字段
创建模版文件app/templates/moments_input.html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>消息输入页面</title>
</head>
<body>
<form action="?" method="post">
<fieldset>
<legend>请输入并提交</legend>
{{ form.as_p }}
<input type="submit" value="submit"/>
</fieldset>
</form>
</body>
</html>
使用自带管理界面app/admin.py
from django.contrib import admin # Register your models here.
from .models import Moment admin.site.register(Moment)