django搭建网站(用django开发的网站)

zzxiexin 5 0
一、系统环境

tornado版本:4.5.1

Django版本:2.0

nignx版本:1.12.2

python版本:3.6.1

MySQL版本:5.7

二、使用Django创建工程

注意:我的项目名用helloword代替,APP名用helloWeb代替,通过访问MySQL数据库实现一个登陆的功能

1、新建一个Django项目

django-admin.py startproject project_name

在Windows上执行这句代码可能会报错,如果报错,执行下面这句代码就OK了

django-admin startproject project_name

执行完之后,在相应的目录下会出现一个project_name的文件夹,里面有一些配置文件。

2、新建一个APP,因为在Django中的APP有点类似一个独立的项目

用cmd进入到项目目录中(cd project_name),项目中会有一个manage.py的文件,执行下面的代码

python manage.py startapp app_name

3、建立模型(将数据库中的表与python中的类对应)

打开app_name目录,找到models.py打开,添加下面的代码

from django.db import models# Create your models here.class User(models.Model): #设置主键,如果不设置主键,Django会给你设置一个 #AutoField会自动增加,primary_key为ture表示为主键 user_id = models.AutoField(max_length=9,primary_key=True) #设置用户名 #unique为True表示唯一,blank为False表示不为空 user_name = models.CharField(max_length=12,unique=True,blank=False) #设置密码 user_password = models.CharField(max_length=20,blank=False) def __unicode__(self): return self.user_id

4、更改helloword下面的settings.py文件,找到里面的database,改成下面一样

DATABASES = { 'default': { 'ENGINE': 'django.db.backends.mysql', 'NAME': "test", 'USER': 'root', 'PASSWORD': 'root', 'HOST': '127.0.0.1', 'PORT': '3306', }}

找到installed_apps,添加你的app名称,如下

INSTALLED_APPS = [ 'django.contrib.admin', 'django.contrib.auth', 'django.contrib.contenttypes', 'django.contrib.sessions', 'django.contrib.messages', 'django.contrib.staticfiles', 'helloWeb',]

5、在数据库中创建表,通过下面的命令实现自动创建

注意:在执行下面的命令之前需要先在数据库中建好,test数据库,不然会报错,如下图

错误提示

a、输入以下命令创建更改的文件

python manage.py makemigrations

如果报错,did you install mysqlclient?如下图

mysqlclient安装窗口提示

pip install mysqlclient

b、将生成的py文件应用到数据库中

python manage.py migrate

执行完成之后,如果你看到下面的界面就是说明表创建成功了

表创建成功提示

4、在数据库中添加用户名和密码(这里是明文的就不加密了),我添加了一个用户名为123密码为456的用户,方便后面登录使用

三、将tornado与Django整合

1、在settings.py的同级目录下新建一个server.py,内容如下

import sysimport osfrom tornado.options import options, define, parse_command_linefrom multiprocessing import Poolimport tornado.httpserverimport tornado.ioloopimport tornado.webimport tornado.wsgifrom django.core.wsgi import get_wsgi_applicationdefine('port', type=int, default=8000)class HelloHandler(tornado.web.RequestHandler): def get(self): self.write('Hello from tornado:%s'%os.getpid())def run(port): os.environ['DJANGO_SETTINGS_MODULE'] = 'settings' parse_command_line() wsgi_app = get_wsgi_application() container = tornado.wsgi.WSGIContainer(wsgi_app) tornado_app = tornado.web.Application( [ ('/', HelloHandler), ('.*', tornado.web.FallbackHandler, dict(fallback=container)), ]) server = tornado.httpserver.HTTPServer(tornado_app) server.listen(port) tornado.ioloop.IOLoop.instance().start()if __name__ == '__main__': pool = Pool(4) pool.map(run,[8000,8001,8002,8003])

2、修改nginx.conf文件,注意root的路径,根据你的APP目录进行修改,路径不能有空格,最好全为英文,不然可能无法启动nginx,修改好之后,点击nignx.exe运行即可,因为文件过大我就不贴了,整个项目我会上传到git,最后会贴出git的地址。

3、在urls.py中定义你的路由路径,在views.py中定义你的数据库操作。

urls.py

from django.contrib import adminfrom django.urls import pathfrom django.conf.urls import urlfrom helloword.helloWeb import viewsurlpatterns = [path('admin/', admin.site.urls),url(r'^login/',views.login),url(r'^verify/',views.verify),url(r'^main/',views.main),]

views.py

import jsonfrom django.shortcuts import renderfrom helloword.helloWeb.models import Userfrom django.http import HttpResponse# Create your views here.#跳转到登录界面def login(request):return render(request,'index.html')#跳转到登主界面def main(request):return render(request,'tables.html')#验证用户的用户名和密码是否正确def verify(request):#判断是属于什么请求if request.method == "POST":username = request.POST['username']password = request.POST['password']result = {}try:#判断用户名和密码是否正确user = User.objects.get(user_name=username)if password == user.user_password:result = 1else:result = 0except:# 用户不存在result = -1result = json.dumps(result)#返回信息给页面return HttpResponse(result)

4、最后,我使用了一个bootstrap的模板,然后在app目录下的static和templates中添加HTML文件以及css和js文件,如果没有这两个目录自己新建一个就好了。在引用css和js文件的时候需要注意,不是通过绝对路径引用,而是通过先加载static,然后再加载路径,如下是一个HTML文件。

{% load static %}<link rel="stylesheet" href="{%static 'css/style.default.css'%}" type="text/css" />四、验证结果

1、运行nignx.exe

2、运行server.py

3、打开浏览器,输入127.0.0.1,多次刷新可以看到不同的PID表示nginx已经生效了。

4、然后通过访问127.0.0.1/login/可以跳转到登录界面

5、用户和密码输入正确之后就可以跳转到主界面了(PS:这里我没有做验证登录的状态,直接输入127.0.0.1/main/也可以访问主界面,真实项目如果输入127.0.0.1/main/如果没有登录应该跳转到登录界面)

五、效果展示

1、登录界面

登录界面

2、主界面

主界面

PS:由于时间问题,git项目我明天再上传,到时候再给大家发地址。有什么好的建议和有问题的地方,欢迎大家留言。

标签: #django搭建网站

  • 评论列表

留言评论

 
QQ在线咨询
售前咨询电话
173-175-32776
技术支持电话
173-175-32776
嘿,欢迎咨询