python写登录界⾯跳转⾄数据库操作
_pycharm+jdango+python实现创建。。。
本⽂通过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.sql',#//数据库的类型
'NAME': 'mytest',              #所使⽤的的数据库的名字
'USER': 'root',                    #数据库服务器的⽤户
'PASSWORD': '611411',              #密码
'HOST': '127.0.0.1',              #主机
'PORT': '3306'                    #端⼝
}
}
2.3 注册应⽤
在上⾯打开的setting.py中,编辑下图中的信息,将firstApp这个应⽤注册进来(没有属性就添加,有就编辑)
INSTALLED_APPS = [
'ib.admin',
'ib.auth',
'ttypes',
'ib.sessions',
'ssages',
'ib.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⽂件,并编辑器内容为:
f.urls import url,include
ib import admin
from firstApp import views
urlpatterns = [
# Examples:
# url(r'^$', 'mysite5.views.home', name='home'),
url(r'^online/', include('firstApp.urls')),
]
在firstApp中创建urls.py⽂件并填写如下内容
f.urls import url,include
ib import admin
from firstApp import views
urlpatterns = [
url(r'^$', views.login, name='login'),
url(r'^login/$',views.login,name = 'login'),
url(r'^regist/$',ist,name = 'regist'),
url(r'^index/$',views.index,name = 'index'),python怎么读取py文件
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
plate import RequestContext
from django import forms
dels import  User
#表单
class UserForm(forms.Form):
username = forms.CharField(label='⽤户名',max_length=100)
password = forms.CharField(label='密码',widget=forms.PasswordInput())
#注册
def regist(req):
hod == 'POST':
uf = UserForm(req.POST)
if uf.is_valid():
#获得表单数据
username = uf.cleaned_data['username']
password = uf.cleaned_data['password']
#添加到数据库
ate(username= username,password=password)
return HttpResponse('regist success!!')
else:
uf = UserForm()
return render_to_response('regist.html',{'uf':uf}, )
#登陆
def login(req):
hod == '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 = ('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}}

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。