Django 创建APP和Mysql数据库连接

软件版本:Django 1.11.11

Python:3.7.1

pip3:10.0.1

安装Django,首先确保python和pip在环境变量中

pip install Django==1.11.11

目录结构:

其中:settings.py是设置文件:

例如:网站有很多的静态资源,js,css等

在里面添加:

#静态文件保存目录的别名
STATIC_URL = '/static/'
#所有静态文件css,js,图片都放在下面的配置文件中
STATICFILES_DIRS = [
    os.path.join(BASE_DIR,"static")
]

urls.py是可以定义函数的文件:

运行方式:

1,pycharm运行manage.py文件

2,进入项目的根目录,运行:python manage.py runserver命令

 

创建APP项目

python manage.py startapp app名字

pycharm中:
启动命令行的界面是:
Terminal
这时候会在项目的目录中生成app01的文件夹
    apps.pyapp相关的配置项
    views.py放置函数的文件

然后告诉settings app的安装路径
在settings.py中
找到:

INSTALLED_APPS = [
	'app01',
	#或者
	'app01.apps.App01Config',
	#注意只能写一个
]

也可以在创建项目的时候直接生成项目


创建项目的步棸:
1.Templates 定义存放的位置:

2.静态文件
    settings.py
    #静态文件保存目录的别名
    STATIC_URL = '/static/'
    #所有静态文件css,js,图片都放在下面的配置文件中
    STATICFILES_DIRS = [
        os.path.join(BASE_DIR,"static")
    ]
3.注释setting.py 带有csrf一行

示例:

项目:demo1
app:app01
/demo1/urls.py
from django.conf.urls import url
from django.contrib import admin

from app01 import views
urlpatterns = [
    url(r'^login/', views.login),
    url(r'^biaodan/', views.biaodan),
]
/demo1/app01/views.py
from django.shortcuts import render, redirect, HttpResponse

# Create your views here.
def login(request):
    return render(request,"login.html")
def jesse(request):
    return HttpResponse('hello,word')
def biaodan(request):
    #打印出所有的值
    print(request.POST)
    name = request.POST.get("username",None)
    pwd = request.POST.get("password",None)
    error_msg = ""
    if name == 'jesse' and pwd == '123':
        # return HttpResponse("登录成功")
        return redirect("http://baidu.com")
    else:
        error_msg = "邮箱或者密码错误"
    print(name, pwd)
    return render(request, "login.html", {"error": error_msg})

    return HttpResponse("yes")
/demo1/templates/login.html
 <!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>登录页面</title>
</head>
<h1>这是一个登录界面</h1>
<form action="/biaodan/" method="post">
    登录名:<input type="text" name="username">
    密码:<input type="text" name="password">
    <input type="submit">
</form>
<p>{{  error }}</p>
<body>

</body>
</html>

 

Django的数据库连接设置:

连接数据库(django默认是pymysql):
setting.py
DATABASES = {
    'default': {
        # 配置数据库的连接类型
        'ENGINE': 'django.db.backends.mysql',
        #连接数据库的地址
        'HOST':'127.0.0.1',
        #连接端口
        'PORT': 3306,
        'NAME': "db1",
        'USER': 'root',
        'PASSWORD': 'root'
        'NAME': os.path.join(BASE_DIR, 'db.sqlite3'),
    }
}
/demo1/__init__.py
在__init__.py中:
import pymysql
#告诉django用pymysql替代MYsqldb
pymysql.install_as_MySQLdb()
/demo1/app01/models.py

from django.db import models

# Create your models here.
from django.db import models
#ORM相关的只能写在这个文件里面,写到别处文件django找不到
class UserInfo(models.Model):
    id = models.AutoField(primary_key=True)#创建一个自增的主键
    name = models.CharField(null=False, max_length=20)#创建一个varchar(20)类型的字段
执行创建的命令:
先检查是否安装了pymysql
安装命令:pip3 install pymysql

创建命令:
python manage.py makemigrations
python manage.py migrate

创建成功!

检查是数据库会写入创建多个数据表

 

1.简化流程:

2.建立APP

python manage.py startapp app05

3.settings.py 引入app

4.备注CSRF

5.引入静态资源 settings.py

#静态文件保存目录的别名
STATIC_URL = '/static/'
#所有静态文件css,js,图片都放在下面的配置文件中
STATICFILES_DIRS = [
    os.path.join(BASE_DIR,"static")
]

6.数据库设置 models.py

7.数据库连接设置

DATABASES = {
    'default': {
        # 配置数据库的连接类型
        'ENGINE': 'django.db.backends.mysql',
        # 连接数据库的地址
        'HOST':

        '192.168.68.40',
        # 连接端口
        'PORT': 3306,
        'NAME': "db2",
        'USER': 'root',
        'PASSWORD': 'root'
    }
}

8.启动创建

python manage.py makemigrations Django2
python manage.py migrate

9.如果提示没有模块,先导入

在__init__.py中:

import pymysql

#告诉django用pymysql替代MYsqldb

pymysql.install_as_MySQLdb()

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值