1、在命令行创建django工程djcsrfget,在工程内创建应用testget,命令如下:django-admin startproject djcsrfgetcd djcsrfgetpython manage.py startapp testget
2、使用PyCharm打开此工程,在工程的同名的文件夹的settings文件,添加应用配置和模板路径,修改的settings.py内容如下:INSTALLED_APPS = [ 'django.contrib.admin', 'django.contrib.auth', 'django.contrib.contenttypes', 'django.contrib.sessions', 'django.contrib.messages', 'django.contrib.staticfiles', 'csrfget.apps.CsrfgetConfig',]ROOT_URLCONF = 'djcsrftest.urls'TEMPLATES = [ { 'BACKEND': 'django.template.backends.django.DjangoTemplates', 'DIRS': [os.path.join(BASE_DIR,'templates')], 'APP_DIRS': True, 'OPTIONS': { 'context_processors': [ 'django.template.context_processors.debug', 'django.template.context_processors.request', 'django.contrib.auth.context_processors.auth', 'django.contrib.messages.context_processors.messages', ], }, },]
3、在项目根目录,新建templates文件夹,并在文件夹内新建‘login.html炀售沲记’和‘index.html’文件,内容如下:login.html<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <title>Title</title></head><body> <form action="/login/" method="POST"> {% csrf_token %} <label>用户名</label> <input type="text" name ="username"> <br/> <br/> <label>密码</label> <input type="password" name="password"> <br/> <br/> <input type="submit" value="登录"> </form></body></html>index.html<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <title>Title</title></head><body> <p>欢迎{{user}}</p> <p> <a href="/transfer/">转账</a> </p></body></html>
4、在工程的同名文件夹的urls.py文件,include到应用的urls.py文件,代码如下:from django.conf.urls import url,includefrom django.contrib import adminurlpatterns = [ url(r'^admin/', admin.site.urls), url(r'',include('csrfget.urls')),]在应用内新建urls.py文件,并写代码如下:from django.conf.urls import urlfrom . import viewsurlpatterns = [ url(r'login/',views.login), url(r'index/',views.index), url(r'transfer/',views.transfer)]
5、在应用的views.py写代码如下,包含三个方法,登录,首页,转账from django.shortcuts import render,HttpResponse,redirectfrom django.contrib import authfrom django.contrib.auth.decorators import login_required# Create your views here.def login(request): if request.method == 'POST': username = request.POST.get('username') password = request.POST.get('password') user = auth.authenticate(username=username, password=password) if user: auth.login(request,user) print ('ok') return redirect('/index/') return render(request,'login.html')@login_required(login_url='/login/')def index(request): return render(request,'index.html')@login_required(login_url='/login/')def transfer(request): return HttpResponse('you have tansfer 1000RMB')转账和首页都是必须登录后才能进入
6、进行数据库迁移并创建一个超级用户,打开开发工具的terminalpython manage.py migratepython manage.py createsuperuser
7、运行服务器,登录上一步创建的用户,在首页点击transfer,弹出下图第三个试想如果这个连接是别人发过来的,在用户已经登录后同样可以操作,只要是在同一个浏览工具,就有当前用户的cookie。python manage.py runserver