[ Web Proxy ]
URL:
Viewing:
https://raw.githubusercontent.com/We2one/Notes/master/python-basic-notes/python-days/Day_38.md
[Back]
[Original]
#### Flask #### AJAX ##### AJAX + AJAX (Asynchronous JavaScript And XML) : Javascript XML + ,, ##### JQ AJAX + ``` jQuery.ajax([settings]) ``` + | | | | ------------- | ------------------------------------------------------------ | | `async: true` | true.., false | | `data` | ..GET URL | | `dataFilter` | AJAX | | `dataType` | ,flask jsonify python json | | `error` | (xml html). | | `success` | (xml html). | | `type` | : "GET", ("POST" "GET"), HTTP | | `url` | | + ``` ``` #### Flask-SQLAlchemy + ``` paginate(page=None, per_page=None, error_out=True, max_per_page=None) ``` + | | | | ------------ | -------------------------------------------------- | | page | , 1 | | per_page | | | error_out | , True , 404 | | max_per_page | max_per_page ,per_page | + | | | | ---------- | ------------------------------------- | | has_next() | | | has_perv() | | | items | | | next | Pagination | | next_num | | | page | | | pages | | | per_page | | | perv | Pagination | | perv_num | | | query | Pagination query | | total | | + + ````python # @userbp.route('/fytest/') def fytest(): # # person_obj_list = Person.query.all() # print(person_obj_list) # # pagination_obj = Person.query.paginate(2, 1) # print(pagination_obj) # # print(pagination_obj.items) # # print(pagination_obj.has_prev) # ,True False # print(pagination_obj.has_next) # ,True False # print(pagination_obj.prev_num) # None # print(pagination_obj.next_num) # None # print(pagination_obj.page) # # print(pagination_obj.pages) # # print(pagination_obj.iter_pages()) # for page in pagination_obj.iter_pages(): print(page) return '...' @userbp.route('/person_list/') @login_check def person_list(): # 0. page = int(request.args.get('page', 1)) # 1. pagination_obj = Person.query.paginate(page, 1) person_obj_list = pagination_obj.items # 3. if page pagination_obj.pages - 3: start = pagination_obj.pages - 5 end = pagination_obj.pages else: start = page - 3 end = page + 2 # 2.(iter_pages) page_page = range(1, pagination_obj.pages + 1)[start:end] return render_template('person.html', person_obj_list=person_obj_list, page_page=page_page, pagination_obj=pagination_obj) ```` + html ```html
{% for page in page_page %} {% if page == pagination_obj.page %}
{{ page }}
{% else %}
{{ page }}
{% endif %} {% endfor %}
``` #### ##### Flask 1. Flask : `pip freeze > package.txt` 2. , 1. package.txt /opt 2. `pip3 install -r package.txt` 3. `pip3 install -r package.txt -i ` ##### Flask 1. Flask /opt 1. main.py 0.0.0.0 2. , ``` python3 main.py run systemctl stop firewalld ``` 3. ##### uWSGI Nginx 1. uWSGI : `pip3 install uwsgi` 2. : `ln /usr/local/python3/bin/uwsgi /usr/bin/wsgi` ##### Nginx 1. Nginx : `wget -c https://nginx.org/download/nginx-1.12.2.tar.gz` 2. Nginx : 1. : `tar -zxvf nginx-1.12.2.tar.gz` 2. : `./configure` `make && make install` 3. : `ln -s /usr/local/nginx/sbin/nginx /usr/bin/nginx` 4. Nginx : `nginx` 5. Nginx 1. `nginx -s stop` : nginx 2. `nginx -s reload` : nginx 3. `nginx -t` : ##### Flask + uWSGI + Nginx 1. wWSGI + /opt scripts , uWSGI ``` [uwsgi] socket=127.0.0.1:5000 // uWSGI pythonpath=/opt/FlaskOAPro // module=main // , .py wsgi-file=/opt/FlaskOAPro/main.py // callable=app // app processes=4 threading=2 daemonize=/opt/scripts/uwsgi.log ``` 2. Nginx 1. : `/usr/local/nginx/conf/` 2. `nginx.conf` : `cp nginx.conf nginx.conf.bak` 3. Nginx ``` server { listen 80; server_name FlaskOAPro; # charset koi8-r; # access_log logs/host.access.log main; access_log logs/host.access.log; error_log logs/host.error.log; loation / { include uwsgi_params; uwsgi_pass 127.0.0.1:5000; uwsgi_param UWSGI_CHDIR /opt/FlaskOAPro; uwsgi_param UWSGI_SCRIPT main:app; } } ``` 3. 1. `/opt/scripts` uWSGI : `uwsgi --ini uwsgi.ini` 2. Nginx 4.
Web Proxy Viewer |
New URL
|
Original Page