美文网首页
Django开发博客

Django开发博客

作者: Py_Explorer | 来源:发表于2017-11-09 17:44 被阅读0次

    1.环境

    pycharm编辑器+python3.6版本+Django框架+mysql数据库

    2.创建项目

    #创建主项目    
    django-admin startproject mysite
    #切换到mysite下
    django-admin startapp myblog
    #创建完成
    
    image.png
    image.png

    3.设置模板模块

    在myblog下,进入models文件里面,创建用户模块

    from django.db import models
    # Create your models here.
    #创建管理用户对象
    class UserManager(models.Manager):
        #增加用户
        def create_user(self,username,password):
            user = self.create(username=username,password=password)
            return user
        #查找用户
        def find_user(self,**kw):
            return self.get(**kw)
    #创建User数据库
    class User(models.Model):
        id = models.AutoField(primary_key=True)
        username = models.CharField(max_length=50)
        password = models.CharField(max_length=50)
        u_m = UserManager()
    

    用户模块创建完毕

    4.写视图模块views文件,同样在myblog子目录里面

    #引入需要的模块
    from django.shortcuts import render  #render为渲染页面
    from django.core.urlresolvers import reverse   #反向解析
    # Create your views here.
    from . import models
    from django.shortcuts import redirect
    
    #首页
    def index(request):
        #渲染出首页页面
        return render(request,"index.html")
    #登陆信息的判断
    def login(request):
        username = request.POST['username']
        password = request.POST['password']
        print(username,password)
    
        user = models.User.u_m.find_user(username=username,password=password)
        if user:
            #记录用户
            request.session["login_user"]=user
            return render(request,"loginsuccess.html",{"user":user})
        else:
            reverse(redirect("myblog:loginmenu"))
    #渲染登陆界面
    def loginmenu(request):
        return render(request,"login.html")
    #注册信息的判断保存进数据库
    def regist(request):
        username=request.POST['username']
        password=request.POST['password']
        models.User.u_m.create_user(username,password)
        # return reverse(redirect("myblog:loginmenu"))
        return render(request,"login.html")
    #注册页面的渲染
    def registmenu(request):
        return render(request,"regist.html")
    #登陆成功页面
    def loginsuccess(request):
        return render(request,"loginsuccess.html")
    

    5.配置路由模块urls,同样的在myblog子文件夹里面

    """
    配置路由
    """
    #引入需要的模块
    from django.conf.urls import url
    from . import views
    #给子目录命名,便于管理
    app_name="myblog"
    
    urlpatterns = [
        #注册信息函数
        url(r'^regist/$',views.regist,name="regist"),
        #注册页面函数
        url(r'^registmenu$',views.registmenu,name="registmenu"),
        #登陆信息函数
        url(r'^login/$',views.login,name="login"),
        #登陆页面函数
        url(r'^loginmenu$',views.loginmenu,name="loginmenu"),
        #  .* 为不加参数的匹配,为首页函数
        url(r'^.*$',views.index,name="index"),
     ]
    

    6.设置主路由urls在mysite里面的urls文件

    from django.conf.urls import url,include  #include模块要自己加上去
    from django.contrib import admin
    #给路由命名,当子目录多时,便于管理
    app_name="root"
    urlpatterns = [
        url(r'^myblog/',include('myblog.urls')),
        url(r'^admin/', admin.site.urls),
    ]
    

    7.配置settings文件,在mysite目录下

    7.1.首页引入,pymysql模块

    import pymysql
    pymysql.install_as_MySQLdb()
    

    7.2.把myblog加入INSTALLED_APPS里面

    INSTALLED_APPS = [
        'django.contrib.admin',
        'django.contrib.auth',
        'django.contrib.contenttypes',
        'django.contrib.sessions',
        'django.contrib.messages',
        'django.contrib.staticfiles',
        'myblog',  #在这里
    ]
    

    7.3.配置数据库

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

    基本配置完成。

    8.网页模板

    首先在myblog子目录里面创建目录templates在templates里面创建网页以[.html]结尾的文件

    首页模板文件index.html
    登陆模板文件login.html
    注册模板文件regist.html
    注册成功文件loginsuccess.html


    image.png

    简易代码index.html

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>首页</title>
    </head>
    <body>
    <h1>首页</h1>
    <!-- -通过路由找到函数->
    <a href="{%url 'myblog:loginmenu'%}">登陆</a><br>
    <a href="{%url 'myblog:registmenu'%}">注册</a>
    </body>
    </html>
    

    登陆代码

    <!DOCTYPE html> 
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>登陆</title>
    </head>
    <body>
    <h1>登陆首页</h1>
    <form action="{%url 'myblog:login'%}" method="post">
        {%csrf_token%}
        username: <input type="text" name="username"><br>
        password: <input type="text" name="password"><br>
        <input type="submit" value="登陆">
    </form>
    </body>
    </html>
    

    注册代码

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>注册</title>
    </head>
    <body>
    <h1>注册首页</h1>
    <form action="{%url 'myblog:regist'%}" method="post">
        {%csrf_token%}
        username: <input type="text" name="username"><br>
        password: <input type="text" name="password"><br>
        <input type="submit" value="注册">
    </form>
    </body>
    </html>
    

    登陆成功代码

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>登陆成功</title>
    </head>
    <body>
    <h1>登陆成功</h1>
    <!--这种格式可以通过函数向页面传递数据-->
    欢迎{{user.username}}登陆
    </body>
    </html>
    

    9.同步数据库

    进入终端,进入mysite目录下

    第一步

    python3 manage.py makemigrations


    image.png
    第二步

    python3 manage.py sqlmigrate myblog 0001


    image.png
    第三步

    python3 manage.py migrate


    image.png

    数据库完成!开始测试代码

    10.测试

    10.1进入mysite下运行

    python3 manager.py runserver
    
    image.png

    表示开启成功

    10.2进入页面连接

    打开页面输入网址localhost:8000/myblog/

    image.png

    点击登陆


    image.png

    点击注册


    image.png

    完成后,可进入数据库查看,简单版到这里,下次更新文章类和增删改

    相关文章

      网友评论

          本文标题:Django开发博客

          本文链接:https://www.haomeiwen.com/subject/ojkmmxtx.html