Django相关操作(连续跳转和登录注册为例)
虚拟环境的安装(VIRTUALENV)
安装virtualenv
pip install virtualenv
创建虚拟环境
在本地创建一个叫env的文件夹,并且Cd到该文件夹下输入:
virtualenv --no-site-package testenv
进入虚拟环境
cd env/testenv/Scripts>activatelinux: cd bin/activate退出: deactivate
Django简介
Django是一个开放源代码的Web应用框架,由Python写成。采用了MTV的框架模式,即模型M,模板T和视图V。它最初是被开发来用于管理劳伦斯出版集团旗下的一些以新闻内容为主的网站的,即是CMS(内容管理系统)软件。并于2005年7月在BSD许可证下发布。这套框架是以比利时的吉普赛爵士吉他手Django Reinhardt来命名的。
MTV模式简介
MTV模式在本质上与MVC模式没有区别,都是为了解耦各个组件,只是在定义上有些不同。
Model: 负责业务与数据库的对象
View: 负责业务逻辑并适当调用Model和Template
Template: 负责把页面渲染展示给用户
注意: Django中还有一个url分发器,也叫做路由。主要用于将url请求发给不同的View处理,View再进行处理
创建一个Django项目(以连续跳转和登录注册为例)
项目目的介绍:
该项目主要实现以下目标:
1. 首先注册账户页面,注册账户后就跳转进入登录页面
2. 登录成功后就可以对学生基本信息进行添加
3. 提交基本信息成功后进入学生详细信息页面,在这个页面可以继续添加
4. 继续点提交后,页面显示所有学生的信息
安装Django
在cmd中输入:
pip install django==1.11
创建Django项目
首先,在本地创建一个文件夹,我们这里命名为world,因为我们需要在这个文件夹中创建之后我们所有的项目。接着,通过CMD我们CD到之前创建的虚拟环境的文件夹env中的Scripts中,通过activate命令进入虚拟环境。进入虚拟环境后,再通过cmd进入我们的world文件夹,然后输入以下代码就可以创建一个django项目了:
django-admin startproject xiangmu
具体所有操作如下图:
文件介绍
这里我们可以用pycharm打开我们创建的这个项目文件,可以看到有如下几个项目文件夹:
manage.py: 是Django用于管理本项目的管理集工具,之后站点运行,数据库自动生成,数据表的修改等都是通过该文件完成。
init.py: 指明该目录结构是一个python包,暂无内容,在后期会初始化一些工具会使用到。
seetings.py: Django项目的配置文件,其中定义了本项目的引用组件,项目名,数据库,静态资源,调试模式,域名限制等
urls.py:项目的URL路由映射,实现客户端请求url由哪个模块进行响应。
wsgi.py:定义WSGI接口信息,通常本文件生成后无需改动
创建应用和配置文件
1. 从CMD中cd到xiangmu文件夹下面,输入以下代码创建一个学生应用:
python manage.py startapp stu
这时候你会发现,项目文件夹下多了一个叫stu的文件,这个stu就是一个app,我们称为应用,一般来说一个应用值包含一种功能,比如这里的学生应用就只做添加学生的事情。其中包括了:
2. 同样的方式,我们创建一个登陆注册的应用:
python manage.py startapp uauth
3. 接着,进入mysql中创建一个叫项目的数据库
4. 开始配置文件:
首先,我们进入xiangmu工程文件下的setting文件中,找到INSTALLED_APPS,在下面加入我们的app名称:
找到MIDDLEWARE,将第四句话注释掉:
找到DATABASES,修改为:
找到TEMPLETES中的DIRS,修改为:
找到下面的TIME_ZONE,将时区改为:
进入xiangmu工程文件中的init.py文件中,在里面加入这两段代码:
import pymysqlpymysql.install_as_MySQLdb()
进入xiangmu工程文件中的urls.py文件中,修改代码如下:
from django.conf.urls import url, include
from django.contrib import adminurlpatterns = [url(r'^admin/', admin.site.urls),url(r'^stu/', include('stu.urls', namespace='s')),url(r'^uauth/', include('uauth.urls'))
]
创建数据表
stu
首先,在stu下创建一个叫urls的python文件,然后进入stu下的models文件中,创建学生类:
from django.db import models# Create your models here.
class Student(models.Model):s_name = models.CharField(max_length=10)s_tel = models.CharField(max_length=11)class Meta:db_table = 'student'class StudentInfo(models.Model):i_addr = models.CharField(max_length=10)s = models.OneToOneField(Student)class Meta:db_table = 'infostudent'
进入我们创建的urls中,输入以下代码:
from django.conf.urls import urlurlpatterns = [# url(r'')
]
uauth
步骤和上面一样,只是这里我么在models中输入以下代码:
from django.db import models
class Users(models.Model):u_name = models.CharField(max_length=10)u_password = models.CharField(max_length=255)u_ticket = models.CharField(max_length=30, null=True)class Meta:db_table = 'day51_users'
生成迁移文件
在cmd中输入以下代码可以生成迁移文件:
python manage.py makemigrations
执行迁移文件在数据库中生成数据
python manage.py migrate
写执行方法
stu.views
进入stu的views中,写执行方法:
from django.http import HttpResponseRedirect
from django.shortcuts import render
from django.core.urlresolvers import reversefrom stu.models import Student, StudentInfodef index(request):if request.method == 'GET':# 获取所有学生信息stuinfos = StudentInfo.objects.all()return render(request, 'index.html', {'stuinfos':stuinfos})def addStu(request):if request.method == 'GET':return render(request, 'addStu.html')if request.method == 'POST':# 跳转到学习详情方法中去name = request.POST.get('name')tel = request.POST.get('tel')stu = Student.objects.create(s_name=name, s_tel=tel)return HttpResponseRedirect(reverse('s:addinfo', kwargs={'stu_id': stu.id}))def addStuInfo(request, stu_id):if request.method == 'GET':return render(request, 'addStuInfo.html', {'stu_id':stu_id})if request.method == 'POST':stu_id = request.POST.get('stu_id')addr = request.POST.get('addr')StudentInfo.objects.create(i_addr=addr, s_id=stu_id)return HttpResponseRedirect('/stu/index/')
stu.urls
from django.conf.urls import urlfrom stu import views
urlpatterns = [url(r'^index/', views.index),url(r'^addstu/', views.addStu, name='add'),url(r'^addstuInfo/(?P<stu_id>\d+)/', views.addStuInfo, name='addinfo')
]
uauth.urls
from django.conf.urls import urlfrom uauth import viewsurlpatterns = [url(r'^regist/',views.regist),url(r'^login/',views.login),url(r'^logout/',views.logout)
]
uauth.views
Django相关操作(连续跳转和登录注册为例)相关推荐
- java web实现页面跳转页面_JavaWeb过滤器实现页面跳转至登录页面
需求说明: 1.用户登录某页面一段时间之内,如果无任何操作,跳转至登录页面. 2.用户在非登录状态下,无法访问项目下的某些页面. 解决方式: 通过session过滤器实现对请求的过滤,如果未登录跳转至 ...
- JavaWeb登录注册系统/界面(邮箱验证码,数据库连接,详细注释,可作结课作业,可用于学习,可接入其他主系统)
目录 1.前言 2.系统实机演示 3.系统分析与设计 (1)主要软件与工具 (2)系统分析 (3)系统规划 4.系统设计与构建 (1)JavaWeb创建 (2)JavaWeb运行 (3)先期依赖准备: ...
- 页面监听,一段时间内不操作网页,就自动跳转到登录页
需求:用户在 5 分钟内没有操作网页,就自动跳转到登录页. 环境:jquery 项目,有公共的 js 文件 . 在所有页面都引用的 js 文件中添加下面代码: //判断用户是否在5分钟内未操作页面,如 ...
- git登录相关操作梳理
git登录相关操作梳理 本文主要基于 Linux/Mac ,Windows下未经测试,不过估计差不多,在 git bash 内操作即可. 创建ssh key并关联github等账号 因为本地Git仓库 ...
- Django 数据库相关操作 (六)
前言 上篇已经介绍过模型相关操作,并创建好了数据库及相关表字段,接下来将通过以下表在Django中进行表数据的增删改查. from django.db import modelsclass Stude ...
- Django+xadmin 打造线上教育平台(二)登录-注册(重制)
Django+xadmin 打造线上教育平台(二) 一.首页 1)views.py/index函数: def index(request):"""首页"&quo ...
- django的登录注册系统
摘要 django框架本身自带有登录注册,也可以自己写登录注册,下面将介绍这这2种方式实登录注册 一.自己写登录注册登出 1.注册regist 注册采用的是form表单,提交到数据库,在登录的时候,查 ...
- 判断session失效,并跳转到登录页面
为什么80%的码农都做不了架构师?>>> 一,首先在登录页面加入以下代码,作用是使用ifrme等加载页面时,跳转登录页面会嵌套在框架内,让登录页面全屏 <script l ...
- Linux相关配置 集群免密码登录配置
Linux相关配置 集群免密码登录配置 实验目的要求: 1.完成VMware Workstation安装,会应用相关操作 2.掌握虚拟机中Linux CentOS 7.4操作系统安装 3.完成静态网络 ...
最新文章
- 机器学习-类别不平衡问题
- python条件语句-Python中条件判断语句的简单使用方法
- web漏洞扫描器原理_web应用防火墙对于网站防护有多重要!
- PhysicsJoint
- LeetCode(16)题解--3Sum Closest
- 4.kibana部署
- 高斯消元解同余方程组
- 用PHP生成随机数的函数
- 【转】程序员的十种级别
- uniapp实现的购物列表左右联动功能
- 汽车CAN总线关闭故障的诊断与恢复
- java 微信主动推送消息_java微信主动推送消息,java微信主动推送消息怎么实现?
- 数据的存储------计算机中常见数据类型的存储方式(C语言解析)
- xcode11 The app delegate must implement the window property if it wants to use a main storyboard fil
- 大数据与机器学习算法相关的电子书分享
- 英华鸿蒙幼儿园一日活动,一日生活常规教研活动——记东升丰乐幼儿园第七次教研活动...
- 最全!互联网大厂的薪资和职级一览
- android 自定义 对号,Android 自定义View 对勾CheckBox
- 2018-2019-2 20175227张雪莹《Java程序设计》实验四 《Android程序设计》
- await 到底在等啥?