码迷,mamicode.com
首页 > 其他好文 > 详细

Django 0.2

时间:2018-06-12 21:01:08      阅读:175      评论:0      收藏:0      [点我收藏+]

标签:网页   project   技术   roo   make   redirect   sql语句   --   字典   

一. 登录功能的实现

    1. form表单提交数据的注意事项:

        1. 是form不是from,必须要有method和action

        2. 所有获取用户输入的表单标签要放在form表单里面,表单标签(input,select)必须要有name属性

        3. form表单必须要有submit按钮

 

    2. GET和POST

        用GET: 向服务端请求一个网页的时候;搜索引擎检索时

        用POST: 使用表单向服务器提交数据时

 

    3. request.method --> 获取的是你请求的方法(GET/POST...)

      # 返回的GET,POST都是大写的,所以在编写业务逻辑时,必须大写!!!

 

    4. request.POST   --> 获取POST提交过来的全部数据(字典)

       # ps request.POST的格式{‘name‘:[], ‘password‘: []}. 可以根据[key]的形式取value,但推荐用.get(),这样没有的话,返回None,不报错。

技术分享图片

    5. redirect        --> 跳转到指定页面!!!

       # 当浏览器解析到3**时,直接向redirect的url发请求,不会继续解析。

 

总结: 基础必会三件套

     from django.shortcuts import HttpResponse,render,redirect

        a. HttpResponse("OK")

        b. render(request, "login.html")

        c. redirect("URL")

 

    6. app: app之于project,相当于学院之于学校;一个学校可以有多个学院;当项目较大时,推荐将不同的文件放入不同的app中

 

        创建APP:

            a. 在pycharm中的terminal中

               python3 manage.py startapp app01  

# /usr/local/bin/python3.6 manage.py startapp app01

            b. 在项目创立初期,在application中填写app01

技术分享图片

            c. Tools -> Run manage.pyTask -> startapp app01

 

        创建好APP,记得告诉Django, 我有这个app:

            在settings.py中,

            # 安装的app都有哪一些

            INSTALLED_APPS = [

                ‘django.contrib.admin‘,

               ‘django.contrib.auth‘,

               ‘django.contrib.contenttypes‘,

               ‘django.contrib.sessions‘,

               ‘django.contrib.messages‘,

               ‘django.contrib.staticfiles‘,

                ‘app01‘,

                # ‘app01.apps.App01Config‘,  # 推荐这一种,不过目前两种方式都可以

            ]

 

         推荐将函数放到app01下的views.py中

 

     7. 如果出现forbidden,去settings.py中将46行附近的csrf相关行注释掉

技术分享图片                                   

二. ORM(对象关系映射)

            1. 复习导入pymysql模块,操作数据库数据

                        import pymysql

                        conn = pymysql.connect(

                                    host="127.0.0.1",

                                    port=3306,

                                    user="root",

                                    password="123",

                                    database="day62",

                                    charset="utf8"

                        )

                        cursor = conn.cursor()

                        cursor.execute("select * from user;")

                        ret = cursor.fetchall()

 

            2. 用orm操作数据库(相当于导入jQuery,用jQuery语句($("#id"))替代原生sql语句(   document.getElementById(id)))

        数据表    --对应-->    类

        数据行    --对应-->    实例对象

        字段      --对应-->    属性

            

            3. 代码操作数据库的方式比较;

                        直接执行SQL

                                    优点:执行效率高

                                    缺点:开发效率低

                        按照特定的语法写,翻译成SQL语句再去执行

                                    优点:开发效率高

                                    缺点:执行效率低,你会忘记SQL语句

 

                        总结:ORM和原生的SQL语句,根据具体的应用场景自行取舍。

 

            4. 不同框架用不同的orm

                e.g. sqlAlchemy  (Flask的orm)

                        

三. Django里面的ORM的使用:

    1. 告诉Django连接那个数据库 (在settings.py的databases中配置mysql)

        DATABASES = {

            ‘default‘: {

                ‘ENGINE‘: ‘django.db.backends.mysql‘,

                ‘NAME‘: ‘db1‘,  # 哪个database

                ‘HOST‘: ‘127.0.0.1‘,

                ‘PORT‘: 3306,

                ‘USER‘: ‘root‘,

                ‘PASSWORD‘: ‘123‘,

            }

        }

 

    2. 告诉Django怎么连接

        Django默认使用的是MySQLdb模块 连接数据库, 但MySQLdb不支持python3。所以,要告诉Django用pymysql这个模块去连接MySQL

        在settings.py同目录下的__init__.py文件中,指定使用pymysql模块代替MySQLdb

            import pymysql

            pymysql.install_as_MySQLdb()

 

    3. 在app/models.py文件中定义类

        一定要继承models.Model

技术分享图片

    4. 执行创建表的操作(在pycharm的terminal中键入)

        1. python3 (/usr/local/bin/python3.6)manage.py makemigrations  --> 将models.py的修改登记到小本本上

        2. python3 (/usr/local/bin/python3.6)manage.py migrate         --> 将修改翻译成SQL语句,去数据库执行

技术分享图片

        亦可: Tools -> Run manage.pyTask -> manage.py makemigrations;manage.py migrate

 

    5. 编辑表

       a. 在pycharm中的Database中(若没有,view-> tool buttons), + -> data source -> mysql -> download missing driver files -> test connection

          添加数据后,找绿色向上箭头保存

技术分享图片

技术分享图片 

技术分享图片

       b. navicate

 

       c. cmd中sql语句 

技术分享图片 

四. 常规步骤

1. 在models中建立一个类

 技术分享图片

2. 在urls中加上对应关系

 技术分享图片

3. 在views中添加该函数

 技术分享图片

4. 在templates中创建该html文件

技术分享图片

 

五. 图书管理系统(项目)

            1. 表结构设计

                        1. 出版社

                        2. 书

                        3. 作者

 

            2. Django的模板语言

            {% for publisher in publisher_list %}  # 注意{%中间没有空格

    <tr>

        <td>{{ publisher.id }}</td>

        <td>{{ publisher.name }}</td>

    </tr>

    {% endfor %}

Django 0.2

标签:网页   project   技术   roo   make   redirect   sql语句   --   字典   

原文地址:https://www.cnblogs.com/yangli0504/p/9174803.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!