项目目录介绍:
manage.py : Django项目里面的工具,通过它可以调用django shell和数据库等。
pyblogsys/
| --- settings.py : 包含了项目的默认设置,包括数据库信息,调试标志以及其他一些工作的变量。
| --- urls.py : 负责把URL模式映射到应用程序。
| --- wsgi.py : 用于项目部署。
bloguser /
| --- admin.py : django 自带admin后面管理,将models.py 中表映射到后台。
| --- apps.py : blog 应用的相关配置。
| --- models.py : Django 自带的ORM,用于设计数据库表。
| --- tests.py : 用于编写Django单元测试。
| --- veiws.py :视图文件,用于编写功能的主要处理逻辑。
# Application definition
INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'blog',
]
初始化admin后台数据库
Python 自带sqlite3数据库,Django默认使用sqlite3数据库,如果使用其它数据库请在settings.py文件中设置。
如果你想使用其他数据库只需要在代码引擎上进行修改.
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql',
'NAME': os.path.join(BASE_DIR, 'db.sqlite3'),
}
}
'NAME'写上数据库名,
创建模板template
在blog项目下创建templates目录(mysite/blog/templates/),在目录下创建模板文件index.html
创建试图函数
from django.shortcuts import render,redirect,reverse,HttpResponse from .models import * # Create your views here. def show(request,id): blogUser=BlogUser.objects.get(pk=id) return render(request,'bloguser/show.html',{'blogUser':blogUser}) def register(request): if request.method=='GET': return render(request,'bloguser/add.html',{}) else: blogUser=BlogUser() blogUser.username=request.POST.get('username') blogUser.pwd=request.POST.get('pwd') try: blogUser.save() return redirect(reverse('user:show',args={blogUser.id})) except: return render(request,'bloguser/add.html',{'user':blogUser,'error':'用户名重复'}) def hasname(request): blogUser = BlogUser.objects.filter(username=request.POST.get('username')) if len(blogUser) == 1: return HttpResponse('很遗憾,此用户名已被占用') else: return HttpResponse('恭喜你可以使用注册') def login(request): if request.method == 'GET': return render(request,'bloguser/login.html',{}) else: #登陆的逻辑代码 username = request.POST.get('username') pwd = request.POST.get('pwd') blogUserSet = BlogUser.objects.filter(username=username,pwd=pwd) if len(blogUserSet) == 1 : #登陆成功 return redirect(reverse('welcome')) else: #登陆失败 return render(request,'bloguser/login.html',{'username':username,'error':'用户或密码不正确'}) def welcome(request): return render(request,'welcome.html',{}
创建项目的URL
from django.contrib import admin from django.urls import path,include from bloguser.views import welcome urlpatterns = [ path('admin/', admin.site.urls), path('user/',include('bloguser.urls',namespace='user')), path('welcome',welcome,name='welcome'), ]
创建App的URL
from django.urls import path from .views import * app_name='user' urlpatterns=[ path('register',register), path('show/<int:id>/',show,name='show'), path('hasname',hasname), path('login',login), ]
创建模板models的类
from django.db import models # Create your models here. class BlogUser(models.Model): username=models.CharField(max_length=30,unique=True) pwd=models.CharField(max_length=20)