Django入门(二)

一.创建APP

    在每一个django项目中可以包含多个APP,相当于一个大型项目中的分系统、子模块、功能部件等.互相之间比较独立,但也有联系.
    在pycharm下方的Terminal终端中输入命令:
    python manage.py startapp app01
    就可以创建一个名为app01的APP,django自动生成app01文件夹
    创建好之后需要在settings中进行配置注册

1445688-20181105170928199-1715382912.png

二.模板路径配置

    模板文件一般都存放在templates文件夹下,该文件夹也就是html文件们的归置目录,使用pycharm创建Django项目时,该文件夹是默认添加的,如果是自己建的Django项目,就需要在settings文件夹中进行配置注册.

1445688-20181105170932943-1498320027.png

三.静态文件配置

我们可以将html文件返回给用户,但是还需要一些其他类型的文件如css,js和其他的插件,所以在django中,一般将静态文件放在static目录中.所以需要在项目目录下新建一个static文件夹

1445688-20181105170942973-1200295494.png

当然,为了让django找到这个目录,依然需要对settings进行配置

1445688-20181105170947253-673701040.png

然后在html文件中,就可以引入js文件了

1445688-20181105170951017-262103413.png

四.登录功能

login.html

<body>
    <!-- action:提交给后台的地址,有三种写法 -->
    <!-- 1.http://127.0.0.1:8000/login -->
    <!-- 2./login/ -->
    <!-- 3.空 -->
    <form action="/login/" method="post">
        <p>
            用户名:<input type="text" name="name" class="form-control">
        </p>
        <p>
            密码:<input type="text" name="pwd" class="form-control">
        </p>
        <input type="submit" value="提交">
    </form>
</body>

views.py

def login(request):
    # request.method--前台提交过来请求的方式
    if request.method == "GET":
        return render(request, "login.html")
    elif request.method == "POST":
        # request.POST(相当于字典)--post形式提交过来的数据
        # request.POST.get("name")--推荐用get取值(取出列表最后一个值)
        name = request.POST.get("name")
        pwd = request.POST.get("pwd")
        # 连接数据库
        conn= pymysql.connect(host='127.0.0.1', port=3306, db='abc',                user='root', password='123456')
        cur = conn.cursor()
        # 防止sql注入漏洞,推荐以下写法
        cur.execute('select * from user where name=%s and password=%s', [name, pwd])
        user = cur.fetchone()
        if user:
            return HttpResponse("登录成功")
        else:
            return HttpResponse("密码或用户名错误")

五.get请求和post请求

get:获取数据,页面,携带数据是不重要的数据(数据量有大小限制)
post:往后台提交数据    

六.新手三件套

1.render--返回页面,默认回去templates中来,所以需要注意路径的配置
2.redirect--重定向
3.HttpResponse--返回字符串
本质都是返回HttpResponse的对象

七.ORM介绍

ORM即Object Relational Mapping,全称为对象关系映射

使用方式:连接mysql数据库
    在settings文件中配置:
    'default': {
        'ENGINE': 'django.db.backends.mysql',
        'HOST': '127.0.0.1',
        'PORT': 3306,
        'USER': 'root',
        'PASSWORD': 'admin',
        'NAME': 'lqz',
        }
还需要在app下的__init__.py中写:
import pymysql
pymysql.install_as_MySQLdb()

然后在models文件中新建一个类,该类就是数据库中的数据表
class User(models.Model):
    # 自增int类型,主键
    id = models.AutoField(primary_key=True)
    # name和pwd是varchar类型,长度是32
    name=models.CharField(max_length=32)
    pwd=models.CharField(max_length=32)

接下来要在pycharm的teminal中通过命令创建数据库的表了。有2条命令,分别是:
1.python manage.py makemigrations ---记录以下数据库的变化
2.python manage.py migrate ---将变化同步到数据库中

转载于:https://www.cnblogs.com/louyefeng/p/9910199.html

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值