python写登录界面跳转至数据库操作_pycharm+jdango+python实现创建web工程并实现简单登陆...

本文通过pycharm和流行的python web开发框架jdango以及python3.6实现创建web工程并且实现简单登陆的功能。

Pycharm下载不再细说,python下载也不再说,jdango为pycharm已经集成的一个目前比较流行的一个web开发框架。

一、创建jdango开发服务器 和应用

file---> New Project

填写项目名称,然后点击create

图中编号1处为项目位置;编号2处为使用的模板语言类型,默认为Django模板语言;编号3处是保存项目页面HTML的文件夹名称,默认为templates;编号4处是应用名,一般根据Web应用的实际功能来命名。

本示例中,我们项目位置为D:\pycharmWorkplace\djangoDemo,应用名为firstApp。

设置填写完毕后,点击右下角的Create,创建项目。

创建好的项目结构如下:

可以看到,在项目根目录下,有三个文件夹:djangoDemo, templates和firstApp,以及一个python脚本文件manage.py.

firstApp是我们创建的应用相关要素的文件夹,djangoDemo是我们整个Django项目相关元素的文件夹。也就是说,对于一个Django项目,与项目名相同的文件夹只能有一个,应用对应的文件夹则可以有多个。templates文件夹用来保存HTML模板。

manage.py 是系统自动生成的Django项目管理程序,Django项目创建和运行所需要的所有命令都能由这个脚本提供。如为项目创建数据库的makemigrations 和 migrate, 启动服务器的runserver等。在编程过程中,manage.py一般是不需要修改的。

firstApp和 djangoDemo所包含的内容大致相同。

firstApp中,编程中常用的是migration文件夹、models.py和views.py。

views.py 是Web应用后台的核心,定义了后台具体的响应动作和数据存取、操作动作的函数;

models.py 是Web应用数据库的定义文件,以Python类的形式定义数据库中的各个表;

migration文件夹 保存着models中的数据库表迁移之后的文件,一般不需要手工操作。

除了firstApp中已有的文件之外,一般还需要新建一个urls.py文件,用来指定应用中出现的url所对应的响应函数。

djangoDemo中,常用的文件是setting.py 和 urls.py。 前者是项目的一些属性设置,如数据库连接、debug的方式等;后者同样是url映射关系。

二、配置web运行参数(数据库等)

2.1 安装Mysqldb库(需要联网)

我在这里使用的是MySQL数据库,因此我需要安装MySQL模块,相同的,如果你想要使用自己的数据库,比如Oracle,Db2等等,你需要手动安装对应的数r据库模块.

在命令窗口下运行如下命令pip install pymysql

稍等片刻,即可安装成功

2.2配置数据库连接

打开djangoDemo文件夹下的setting.py文件,敲入数据库连接信息

DATABASES = {

'default': {

'ENGINE': 'django.db.backends.mysql',#//数据库的类型

'NAME': 'mytest',              #所使用的的数据库的名字

'USER': 'root',                    #数据库服务器的用户

'PASSWORD': '611411',               #密码

'HOST': '127.0.0.1',               #主机

'PORT': '3306'                    #端口

}

}

2.3 注册应用

在上面打开的setting.py中,编辑下图中的信息,将firstApp这个应用注册进来(没有属性就添加,有就编辑)

INSTALLED_APPS = [

'django.contrib.admin',

'django.contrib.auth',

'django.contrib.contenttypes',

'django.contrib.sessions',

'django.contrib.messages',

'django.contrib.staticfiles',

'firstApp',   #自己的应用注册进来

]

2.3 编写实体类

打开下图中的models.py文件,写一个user类

from django.db import models

# Create your models here.

class User(models.Model):

username = models.CharField(max_length=50)

password = models.CharField(max_length=50)

def __unicode__(self):

return self.username

2.4 引入pymysql库

打开下图中的__init__.py文件,引入pymysql库

import pymysql

pymysql.install_as_MySQLdb()

2.5通过命令把实体类生成对应的Mysql表

通过命令行进入到你创建的应用根目录下,我的目录为D:\pycharmWorkplace\djangoDemo,在此目录下运行如下命令,即可将实体类生成对应的表(由于django有默认的一些表结构,因此本命令只是修改里面某些表字段的列名)

此命令为这些修改创建迁移文件python manage.py makemigrations

将这些改变更新到数据库中python manage.py migrate

生成后的mysql数据库的表结构如下:

当然,你还可以使用命令创建一个管理员账户,这个不是必须进行的python manage.py createsuperuser

三、开始开发应用

3.1 配置Url

打开如下图的urls.py文件,并编辑器内容为:

from django.conf.urls import url,include

from django.contrib import admin

from firstApp import views

urlpatterns = [

# Examples:

# url(r'^$', 'mysite5.views.home', name='home'),

url(r'^online/', include('firstApp.urls')),

]

在firstApp中创建urls.py文件并填写如下内容

from django.conf.urls import url,include

from django.contrib import admin

from firstApp import views

urlpatterns = [

url(r'^$', views.login, name='login'),

url(r'^login/$',views.login,name = 'login'),

url(r'^regist/$',views.regist,name = 'regist'),

url(r'^index/$',views.index,name = 'index'),

url(r'^logout/$',views.logout,name = 'logout'),

]

3.2 创建视图

打开下图中的views.py文件,编辑成如下内容from django.shortcuts import render

# Create your views here.

#coding=utf-8

from django.shortcuts import render,render_to_response

from django.http import HttpResponse,HttpResponseRedirect

from django.template import RequestContext

from django import forms

from firstApp.models import  User

#表单

class UserForm(forms.Form):

username = forms.CharField(label='用户名',max_length=100)

password = forms.CharField(label='密码',widget=forms.PasswordInput())

#注册

def regist(req):

if req.method == 'POST':

uf = UserForm(req.POST)

if uf.is_valid():

#获得表单数据

username = uf.cleaned_data['username']

password = uf.cleaned_data['password']

#添加到数据库

User.objects.create(username= username,password=password)

return HttpResponse('regist success!!')

else:

uf = UserForm()

return render_to_response('regist.html',{'uf':uf}, )

#登陆

def login(req):

if req.method == 'POST':

uf = UserForm(req.POST)

if uf.is_valid():

#获取表单用户密码

username = uf.cleaned_data['username']

password = uf.cleaned_data['password']

#获取的表单数据与数据库进行比较

user = User.objects.filter(username__exact = username,password__exact = password)

if user:

#比较成功,跳转index

response = HttpResponseRedirect('/online/index/')

#将username写入浏览器cookie,失效时间为3600

response.set_cookie('username',username,3600)

return response

else:

#比较失败,还在login

return HttpResponseRedirect('/online/login/')

else:

uf = UserForm()

return render_to_response('login.html',{'uf':uf},)

#登陆成功

def index(req):

username = req.COOKIES.get('username','')

return render_to_response('index.html' ,{'username':username})

#退出

def logout(req):

response = HttpResponse('logout !!')

#清理cookie里保存username

response.delete_cookie('username')

return response

这里实现了所有注册,登陆逻辑,中间用到cookie创建,读取,删除操作等。

3.3 创建html页面

在下图中的templates文件夹中创建regist.html文件

html>

Title

注册页面:

{% csrf_token %}

{{uf.as_p}}

登陆

在templates文件夹中创建login.html 文件html>

登陆

登陆页面:

{% csrf_token %}

{{uf.as_p}}

注册

在templates/目录下创建index.html 文件html>

Title

welcome {{username}} !

退出

3.34 添加模块路径

打开setting.py文件

STATICFILES_DIRS = (

os.path.join(BASE_DIR,'firstApp/templates'),

)

自此,开发完成

四、运行

4.1 注册:

注册成功,提示“regist success!!”

4.2 登陆

执行登陆操作,通过读取浏览器cookie 来获取用户名

登录成功

  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值